[Web-SIG] A 'shutdown' function in WSGI

Simon Sapin simon.sapin at exyr.org
Tue Feb 21 02:03:39 CET 2012


Le 21/02/2012 01:18, Chris McDonough a écrit :
> On Mon, 2012-02-20 at 17:39 -0500, PJ Eby wrote:
>> >  The standard way to do this would be to define an "optional server
>> >  extension" API supplied in the environ; for example, a
>> >  'x-wsgiorg.register_shutdown' function.
> Unlikely, AFACIT, as shutdown may happen when no request is active.
> Even if this somehow happened to not be the case, asking the application
> to put it in the environ is not useful, as the environ can't really be
> relied on to retain values "up" the call stack.

Hi,

I like environ['x-wsgiorg.register_shutdown']. It would work without 
changes to WSGI itself.

I think that the idea is not to put your shutdown function in the 
environment and hope it stays there "up" the stack, but to register it 
by calling register_shutdown:

@environ.get('x-wsgiorg.register_shutdown', lambda f: f)
def do_cleanup():
     pass

Also, a shutdown function would be used to clean up something that was 
set up in a request. So if the server shuts down without having ever 
served a request, there probably is nothing to clean up.

Regards,
-- 
Simon Sapin


More information about the Web-SIG mailing list