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