Понимание eventlet.wsgi.server - PullRequest
       23

Понимание eventlet.wsgi.server

2 голосов
/ 14 декабря 2011

У меня есть эта простая программа на 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 голос
/ 11 августа 2015

Вы должны использовать патч обезьяны, как показано ниже:

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

Дополнительную информацию можно найти по этой ссылке .

...