On Feb 12, 12:06 am, Matt Craighead <[email protected]> wrote: > Suppose the client making an HTTP request to my WSGI app closes its socket, > say, because the user hit Escape in their web browser. What happens to my > Python interpreter executing the WSGI code in question? It keeps running, > right? > > This seems pretty unfortunate. Suppose that the implementation of my HTTP > request needs to go out on the network to talk to some other server. > (Which, in my case, some of them do.) connect(), send(), recv() can all > take potentially unlimited amounts of time to complete. They may not > consume any CPU time while they're blocking, but a thread is just sitting > there doing nothing; and what, if anything, will cause that thread to die > short of killing the Apache process or the WSGI daemon process (if any)? > Leak enough threads and you could run out of memory, deadlock, or whatnot. > > The behavior I'd think I'd want would be that a closed client socket would > result in a Python KeyboardInterrupt being raised asynchronously inside my > WSGI Python interpreter, exactly like Ctrl-C in a normal Python app. Then > my code would nicely release any DB locks/rollback any pending DB > transactions as the stack unrolled, and blocking IOs (socket or otherwise) > could be interrupted via a signal (Unix)/IO cancellation (Windows)/some > other mechanism (???). > mod_wsgi daemon mode seems like a partial solution at best: > - daemon mode is not supported on Windows, right? > - killing the daemon process (potentially?) kills other requests, not just > the hung request > > And any solution that involves one process per request, well, then we might > as well be back to using CGI rather than WSGI...
WSGI and CGI both are http, so how would that be different ? Honestly i do not think this kind of keep alive cancel stuff will work on a apache server or any webserver i know ? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "modwsgi" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en -~----------~----~----~----~------~----~------~--~---
