Non-evil multithreaded WSGI server?

Gerhard Häring gh at ghaering.de
Wed Aug 27 04:20:14 EDT 2008


Gabriel Genellina wrote:
> En Tue, 26 Aug 2008 03:20:53 -0300, Gerhard Häring <gh at ghaering.de> 
> escribi�:
> 
>> In a recent experiment I've done this:
>>
>> from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
>> from wsgiref.simple_server import make_server, demo_app
>> from SocketServer import ThreadingMixIn
>>
>> # Let's make a WSGI server that can use multiple threads.
>>
>> class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
>>      """Handle requests in a separate thread."""
>>
>> # Evil! ;-)
>> from wsgiref.simple_server import WSGIServer as MyWSGIServer
>> MyWSGIServer.__bases__ = (ThreadedHTTPServer,)
>>
>> Now I wonder if there's a less evil way that does not involve copy & 
>> paste of the WSGIServer code (only couple of lines, but I hate 
>> duplication)?!
> 
> I'm not sure I understand completely the question - does the code below 
> work for you?
> 
> class MyWSGIServer(ThreadingMixIn, wsgiref.simple_server.WSGIServer):
>     pass

Yes, it does!

I was totally on the wrong track. Of course the ThreadingMixin can also 
be "mixed in" later in the chain.

-- Gerhard




More information about the Python-list mailing list