2011-10-12 1 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

파이썬 3를 사용하는 경우. – alexvassel

답변

0

이 같은 SocketServer 모듈에서 ThreadingMixIn 또는 ForkingMixIn을 사용할 수 있습니다 :

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는하지만, 윈도우에서 작동하지 않습니다.

교체 'SocketServer' 'socketserver'와 당신이 gevent 서버를 사용하기로 결정

+0

고마워,하지만 지금은 더 나 빠졌다 (느린 (초당 요청 수가 적음)). – alexvassel