我用gevent +瓶做以下用途:
我已经为API调用(httplib/套接字)设置了一个tiemout,但是如果设置为5秒(例如),我的python脚本就会很忙,不能返回任何其他页面(这是正常的)。
问:我能否以某种方式巧妙地使用gevent (也许是在一个单独的脚本中)?来处理这么长时间的请求?
我正在考虑在localhost上启动一个单独的API-询问脚本:8080并将其置于负载均衡器(如"Internet“所建议的那样),但我确信没有更好的方法。
我不是一个有经验的程序员,所以感谢你的帮助!
发布于 2013-01-28 13:50:56
其实你的问题不应该存在。gevent服务器后端可以同时处理任意数量的请求。如果其中一个被阻塞了5秒,这不会影响到达服务器的其他请求。这就是gevent服务器后端的要点。
1)您确定正确地使用gevent服务器后端吗?而不仅仅是wsgiref默认服务器的猴子补丁版本(它是单线程的)?
2)您是否通过bottle.py --server gevent启动服务器?如果不是,在导入所有其他与套接字相关的东西(包括瓶子)之前,您是否gevent.monkey.patch_all()?
示例:
from gevent import monkey
monkey.patch_all()
import bottle
import urllib2
@bottle.route(...)
def callback():
urllib2.open(...)
bottle.run(server='gevent')https://stackoverflow.com/questions/14559135
复制相似问题