【发布时间】:2017-01-31 21:38:30
【问题描述】:
我实现了一个带有事件回调功能的简单应用程序,但服务器无法同时处理请求。它等待第一个请求完成,然后再提供第二个请求。不知道我做错了什么。我以此为参考: http://bottlepy.org/docs/dev/async.html
import time
from gevent import monkey; monkey.patch_all()
import bottle
from gevent import Greenlet
from gevent import pywsgi
from gevent import queue
import gevent
def worker(body):
print 'worker called'
data = [ 'one', 'two', 'three', 'four' ]
for d in data:
body.put(d)
gevent.sleep(5)
body.put(StopIteration)
@bottle.route('/')
def def1():
body = gevent.queue.Queue()
g = Greenlet.spawn(worker, body)
return body
def main():
bottle.run(host='0',port=8081, server="gevent")
if __name__ == '__main__':
main()
谢谢
【问题讨论】:
-
2 个问题导致它无法异步运行。必须安装 Libevent 并在触发请求时使用 2 个不同的浏览器。