У меня есть одна простая программа wsgi.
from wsgiref.simple_server import make_server
import time
def application(environ, start_response):
response_body = 'Hello World'
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', str(len(response_body)))]
start_response(status, response_headers)
if environ['PATH_INFO'] != '/favicon.ico':
print "Time :", int(time.time())
if int(time.time()) % 2:
print "Even"
time.sleep(10)
else:
print "Odd"
return [response_body]
httpd = make_server('localhost', 8000, application)
httpd.serve_forever()
Таким образом, согласно коду, если timestamp
равно Even
, то он отправит ответ через 10 секунд. Но если timestamp
равно Odd
, то он отправит ответ напрямую без сна.
Итак, мой вопрос: если я отправлю 2 запроса, и если первый запрос отправит запрос в режиме Even
, тогда мой второй запрос будет обработан после завершения первого.
Я проверил решение и обнаружил, что запрос 'multiprocess can solve this problem. I set the apache configuration with
multiprocess . Then I get the response for
Odd without completing
Even`.
Я проверяю, как установить multiprocess
с помощью метода make_server
модуля simple_server
. Когда я запускаю python /usr/lib64/python2.7/wsgiref/simple_server.py
, я получаю вывод, и последние несколько строк
wsgi.errors = <open file '<stderr>', mode 'w' at 0x7f22ba2a1270>
wsgi.file_wrapper = <class wsgiref.util.FileWrapper at 0x1647600>
wsgi.input = <socket._fileobject object at 0x1569cd0>
wsgi.multiprocess = False
wsgi.multithread = True
wsgi.run_once = False
wsgi.url_scheme = 'http'
wsgi.version = (1, 0)
Так что я искал, как установить этот make_server
мультипроцесс, чтобы make_server мог обрабатывать более 1 запроса, если какой-либо запрос выполняется.
Спасибо заранее.