2011-12-14 4 views
2

나는이 간단한 파이썬 programm에 있습니다Unterstanding eventlet.wsgi.server

from eventlet import wsgi 
import eventlet 
from eventlet.green import time 

def hello_world(env, start_response): 
    print "got request" 
    time.sleep(10) 
    start_response('200 OK', [('Content-Type', 'text/plain')]) 
    return ['Hello, World!\n'] 

wsgi.server(eventlet.listen(('', 8090)), hello_world) 
그래서

내가 그것을 실행하고 브라우저를 여러 번에 열려 http://localhost:8090/, 첫 번째 요청이 이미 처리 된 후 got request 만 인쇄를 (10 초 후). eventlet.wsgi.server이 요청을 동 기적으로 처리하고있는 것 같습니다. 그러나 나는 "녹색"sleep을 사용하고 있습니다. 어떻게 이런 일이 일어날 수 있습니까?

감사합니다.

eventlet.patcher.monkey_patch(all=False, socket=True, time=True, 
          select=True, thread=True, os=True) 

더 많은 정보는이 link에서 볼 수 있습니다 :

+0

나는 모든 요청이 별도의 (녹색) 쓰레드'pool.spawn_n (serv.process_request, client_socket)'에서 처리되고''풀 maxium 크기가 1024 ... – nomoral

+0

이니''wsgi.py'를 보았습니다. 버퍼링되지 않은 출력이 있습니까? – ionelmc

+0

이걸 어떻게 확인할 수 있니? – nomoral

답변

1

당신은 다음과 원숭이 패치를 사용해야합니다.