|
Byron Ellacott
bje at apnic.net
Tue Jul 6 09:43:36 EDT 2004
James Gate wrote:
> I've started writing Web Applications using mod_python and was wondering
> if there is some sort of global dictionary that I can register objects
> in, similar in method to that of Java Servlets? What I'm trying to do is
> create a global connection pool for database access, that is accessible
> by all apache threads. I've written and tests a thread safe connection
> pool, and just need somewhere to place an instance of it!
(As long as you're running a threaded Apache, and not a forking Apache...)
Just stick it in a global variable. You can make it a singleton
instance easily enough:
--- snip DBPool.py ---
#!/usr/bin/env python
class DBPool:
pass
pool = DBPool()
--- snip DBPool.py ---
mod_python reuses Python interpreters, so once your module has been
loaded, any subsequent imports of it will just be obtaining a reference
from sys.modules[]. You'll want to watch for how you've told mod_python
to create interpreters; by default it creates one interpreter per
process, but you can also tell it to create an interpreter per directory
or a specifically named interpreter.
--
bje
|