According to the documentations, both issues are caused by the fact mod_wsgi keeps the Python interpreter loaded all the time for a specific application group. When you first time request a script from your web browser, the script is *imported* by mod_wsgi, executing any code on the global scope of the script. Then mod_wsgi looks for the name "application" and calls it. On any subsequent calls mod_wsgi simply calls "application" again from the already loaded script, unless it detects that the script file has been edited.
1. Now if your script imports some other files, then those are cached too. If you edit them and they happen to be imported again, then you have two copies of the imported module, new and old, and it is quite random which copy will be used. By using the daemon mode and "touch"ing the main script this problem can be worked around since the process restarts itself causing also all other imported modules be removed from memory also. 2. This case is even simpler. The start variable is assigned in global scope, so it is only set to some value when the script was first time imported. If you need to set every time, you must do it inside the called "application" since that is the only code mod_wsgi will call again on each request. Now I am not sure if setting run_once has any effect on this, but I would not count on using that. On Jan 9, 10:34 pm, "bran.name" <[email protected]> wrote: > Hey all, > > I seem to be having exactly the same problems: > > 1. Sometimes getting old versions when refreshing a page, while I did > edit file. > - this first I did fix by writing a script that "touches" my wsgi > script when I save a file in my IDE, as read > at:http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode > > 2. Some kind of caching of certain variables. > - this I dont know how to fix yet, but I got to reproduce the problem > fairly easy with the following code, executed as wsgi script: > > import datetime > start = datetime.datetime.now() > def application(environment, start_response): > start_response('200 OK', [('Content-Type', 'text/html; > charset=utf8')]) > return [str(datetime.datetime.now() - start)] > > Exact Problem: Everytime I refresh the url to this page the time > printed grows bigger, if I wait exactly 1 second between 2 refreshes, > the time grows by exactly 1 second, there seems to be no end to it, I > waited 2 days, and it incremented with 2 days more. The moment I touch > the file or restart apache, the time printed is again the first > request parse time, like I need it to be every refresh. The problem > persists in both the mod_wsgi's embedded mode & daemon mode on all my > test boxes seen below.
-- You received this message because you are subscribed to the Google Groups "modwsgi" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en.
