我有一个简单的Hello world应用程序,并托管在Gevent WSGI服务器中。
我正在同时从两台不同的计算机发送并发请求,但是WSGI正在对最后一个进行排队,并且仅在第一个完成后才得到处理。
我希望看到数字以交错方式在控制台中打印。
有没有办法使服务器成为多线程?还是什么WSGI实现服务器能够处理多线程?
from gevent import monkey; monkey.patch_all()
from gevent.pywsgi import WSGIServer
from gevent.pool import Pool
def app(environ, start_response):
print "\n\n*****Request Reached the Server*****\n"
# To Test if the concurrent request prints in console
for i in range(39900000):
print i,
status = '200 OK'
output = 'Hello World!\n'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
base_env = {'GATEWAY_INTERFACE': 'CGI/1.1',
'wsgi.version': (1, 0),
'wsgi.multithread': True, # XXX: Aren't we really, though?
'wsgi.multiprocess': True,
'wsgi.run_once': False}
port = 8080
server = WSGIServer(("", port), app, spawn=Pool(200), environ=base_env)
server.serve_forever()