理解eventlet.wsgi.server
我有一个简单的Python程序:
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
,那这怎么可能呢?
谢谢!
1 个回答
1
你需要像下面这样使用猴子补丁:
eventlet.patcher.monkey_patch(all=False, socket=True, time=True,
select=True, thread=True, os=True)
更多信息可以在这个 链接 找到。