Rene Dudfield wrote: > This is a great idea! It gets around the problem of broken modules > too. If a module is updated on the live site, and it doesn't work for > whatever reason, then the old server is still around to serve > requests.
I hadn't thought about this aspect. One problem with the reloader in Paste is that it can restart the server, and when there is a syntax error or something buggy in the startup code the whole server will die there. Of course, I guess I could keep trying to restart the server regardless of its exit code, and just restart and restart until the bug gets fixed... but it would be better to leave the old one around until the new one shows at least some indication that it's ready to serve requests. > Keeping the old server around until it has finished its requests would > be good. It would need to be told to stop handling new requests... > Like stop binding. But then you still have a tiny window when they > switch over that requests may get a connection refused message? Still > 100% better than the kill/start method. One way that mod_webkit handles this (and PCGI and others -- but NOT SCGI, sadly) is it will keep retrying the connection for about 10 seconds. So connections during that downtime get caught in the gateway between Apache and the Python server, and eventually get through (as long as the server really does come back up). It works quite well, and it's simple. -- Ian Bicking / [EMAIL PROTECTED] / http://blog.ianbicking.org _______________________________________________ Web-SIG mailing list [email protected] Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com
