[Web-SIG] Web Site Process Bus
Joseph Tate
jtate at rpath.com
Tue Jun 26 06:06:34 CEST 2007
On Monday 25 June 2007 22:48:47 Graham Dumpleton wrote:
> Thus I believe a clear statement should be made that UNIX signals are
> off limits to WSGI applications or components. I have no problem with
> the underlying server upon which the WSGI adapter sits using them for
> its own purposes, however, knowledge of signals should stay in that
> layer. Now it may be the case that a higher level application signal
> may be generated as a result of a SIGTERM in a specific server
> implementation, for example shutdown, but the name or type of signal
> does have to be distinct, ie., "shutdown" and have no linkage to the
> UNIX signal.
I think this is fine. Signal handlers only get run in the main thread anyway,
so ignoring them for sub-threads (like handlers, dispatchers, etc) is a
natural division.
<snip lots of interesting things about SystemExit>
A web bus obviates the need to signal other processes in the process group.
I'm not clear on how the web bus devolves in the multi-process state though.
My particular use case for keeping SystemExit around is I have an app that
allows the user to upload a new SSL certificate. Without a restart, or
perhaps, given a WSPBus, just a drop to IDLE state, the new SSL certificate
would not be applied to new incoming connections. The thread that puts the
new SSL Certificate in place needs to be able to tell the entire server to
reload.
A second use case has already been mentioned: reloading running code. The
same app as above runs the system software update mechanism. When that
update completes (which could contain a new core c library, new python, new
modules, new application code, or even new configuration data) the server
needs to reload.
I think that SystemExit should not be removed from the WSGI application layer,
unless it's replaced with another mechanism that allows the working
thread/process to signal that the entire server should be restarted/reloaded.
--
Joseph Tate
Software Engineer
rPath Inc.
http://www.rpath.com/rbuilder/
(919) 851-3984 x2106
More information about the Web-SIG
mailing list