2

我有这个简单的 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。怎么会这样?

谢谢!

4

1 回答 1

1

您必须使用以下猴子补丁:

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

可以从此链接找到更多信息。

于 2015-08-11T02:38:33.837 回答