Graham Dumpleton wrote: > On May 1, 3:51 pm, Paul Rubin <http://[EMAIL PROTECTED]> wrote: > >>Graham Dumpleton <[EMAIL PROTECTED]> writes: >> >>>That it doesn't reload a parent when a child changes may be fine in an >>>interactive debugger, but can cause problems if not done where >>>automatic reloading is being done in a long running web application >>>where you want to avoid server restarts. >> >>Oh that sounds horrid.
Er, yes. > It may sound horrible but mod_python's original module importer had > lots of problems because of things not being reloaded when they should > have in a consistent manner. People weren't going to want to give up > the reload feature altogether as restarting Apache all the time is > viewed as a worse solution, so the only practical solution was at > least make it reliable and this is one of the things that was required > to do it. The number of complaints against mod_python module importing > and reloading problems has basically vanished now with mod_python 3.3 > and the whole thing is so much more stable now. > > Do note that this reloading mechanism isn't applied across all Python > modules, only mod_python handler and associated modules which are used > within the context of URL/document space of your web server. Thus it > is quite specialised and has quite specific use case scenarios which > are well understood. In that context the whole mechanism works fine. > Thus, please try not to pass judgment on it without full understanding > the problem space it operates in and how it internally works. :-) Ouch. This is one of those things where you start out with what looks like a simple idea, but scaling it up introduces excessive complexity. I'm impressed that somebody worked through that mess. Could be worse, though. Imagine reloading, mod_python, and Twisted all interacting during a software upgrade. There's something to be said for the FastCGI approach. Restarts and upgrades are handled in a straightforward manner. You're just running a program over and over, without reloading, and every N minutes, or when it's asked to do so, the program exits and is replaced by a freshly loaded version. There's no reloading, just loading. John Nagle -- http://mail.python.org/mailman/listinfo/python-list