[mod_python] module caching problem

Damjan gdamjan at mail.net.mk
Tue Nov 23 19:49:06 EST 2004


> I am running into a problem with mod_python in that, I am importing a module
> in the handler which creates a singleton in memory.  I am using the module
> to hold cache information for any other modules that import the same module.
> 
> I started testing the cache mechanism when I noticed that the module was
> being imported multiple times and not just once after the first request
> after apache had started.  To test this, I put a few lines of code in the
> module to write to a file the time it was last imported.  I noticed that
> after restarting apache, the first time it writes to the file.  If I hit
> refresh on my page immediately, multiple times, it doesn't write.  If I wait
> like 10 seconds or more and then hit refresh again, it reimports that module
> that should have been cached.
> 
> Also, If I make a request for a page from two different clients, it
> reimports the module from each client.  Am I mistaken in thinking that any
> module imported in the handler then is cached in mod_python's module cache
> and subsequent imports of that module then are simply served up from the
> cache.  Under what conditions then would the same module get reimported if
> no modifications were made to that module?

I guess your are runnig Apache with mpm_prefork? 
In that case there's a completely different python interpreter for each
Apache process, so your caching module is loaded in each of them.

Your testing showed how apache processes get to serve requests, if it gets
two simultaneus requests two apache processes will be active, each
serving one of the request. But if you only generate one request after
another, its most likely that the same process will serve  both
requests... of course this depends on OS implementation... I think you
are running on Linux, no?

-- 
damjan | дамјан
This is my jabber ID --> damjan at bagra.net.mk <-- not my mail address!!!


More information about the Mod_python mailing list