2011-10-12 27 views
1

所有人。我有一個簡單的wsgi服務器和一個簡單的wsgi應用程序。wsgi在多任務模式下

**The application** 

def app(environ, start_response): 
    start_response('200 OK', [('Content-type', 'text/plain')]) 
    return ['Hello here'] 


**The server** 

from wsgiref import simple_server 
server = simple_server.WSGIServer(
     ('', 8080), 
     simple_server.WSGIRequestHandler, 
    ) 
server.set_app(app) 
server.serve_forever() 

是否有任何的方法來處理任何用戶在單獨的處理請求或也許線程(即執行應用程序代碼),而無需使用外部框架?在預期的流程或線程中沒有公共數據。如果不可能,您可以建議哪種方式?

+0

決定使用gevent服務器。 – alexvassel

回答

0

您可以使用ThreadingMixInForkingMixIn從SocketServer的模塊,像這樣:

from wsgiref import simple_server 
from SocketServer import ThreadingMixIn 

class ThreadingWSGIServer (ThreadingMixIn, simple_server.WSGIServer): pass 

server = ThreadingWSGIServer(...) 
server.set_app(app) 
server.serve_forever() 

ForkingMixIn將無法在Windows工作,雖然。

如果您使用Python 3,請將'SocketServer'替換爲'socketserver'。

+0

謝謝,但現在更糟糕(更慢(每秒更少的請求))。 – alexvassel