Jack Diederich
jack_diederich at email.com
Thu Jun 26 18:58:25 EST 2003
From: VanL <vlindberg at verio.net> > I think that the nicest solution (in terms of API, at least) would be to > have an explicit namespace that is instantiated when mod_python is first > loaded. Applications could then access this shared namespace by > importing it; anything declared in the namespace would be automatically > shared. > > For example. > from mod_python import apache.shared as shared > > shared.myvar = 'something here' > In the future setting variables in other module spaces may be outlawed in python. Treating modules like classes/objects is also strongly discouraged. I think your use of dicts is dead on, something like: def do_calc(): cache = mod_python.shared if ('foo' not in cache): cache['foo'] = 'bar' return cache['foo'] As I mentioned during the long thread on what frameworks should do, we could add two dicts to mod_python, mod_python.page_cache # caching dict created per-request mod_python.perm_cache # cache valid accross all processes for ever perm_cache could actually lie and just keep the last X least recently used entries, but the main idea is that it is long lasting and valid accross all processes. An intermediate mod_python.proc_cache that is similarly 'permenent' for the life of the process, but only caches values locally to the current process might be useful in a pure-forking server because it doesn't have to worry about locking. If you are threading you have to do locking anyway, so perm_cache is more useful. -jack -- __________________________________________________________ Sign-up for your own FREE Personalized E-mail at Mail.com http://www.mail.com/?sr=signup
|