首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python gevent+bottle。查询API。如何使用gevent来防止超时锁?

Python gevent+bottle。查询API。如何使用gevent来防止超时锁?
EN

Stack Overflow用户
提问于 2013-01-28 09:37:21
回答 1查看 3.9K关注 0票数 3

我用gevent +瓶做以下用途:

  1. 在远程服务器上调用API方法
  2. API的进程结果
  3. 返回HTML

我已经为API调用(httplib/套接字)设置了一个tiemout,但是如果设置为5秒(例如),我的python脚本就会很忙,不能返回任何其他页面(这是正常的)。

问:我能否以某种方式巧妙地使用gevent (也许是在一个单独的脚本中)?来处理这么长时间的请求?

我正在考虑在localhost上启动一个单独的API-询问脚本:8080并将其置于负载均衡器(如"Internet“所建议的那样),但我确信没有更好的方法。

我不是一个有经验的程序员,所以感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-28 13:50:56

其实你的问题不应该存在。gevent服务器后端可以同时处理任意数量的请求。如果其中一个被阻塞了5秒,这不会影响到达服务器的其他请求。这就是gevent服务器后端的要点。

1)您确定正确地使用gevent服务器后端吗?而不仅仅是wsgiref默认服务器的猴子补丁版本(它是单线程的)?

2)您是否通过bottle.py --server gevent启动服务器?如果不是,在导入所有其他与套接字相关的东西(包括瓶子)之前,您是否gevent.monkey.patch_all()

示例:

代码语言:javascript
复制
from gevent import monkey
monkey.patch_all()
import bottle
import urllib2

@bottle.route(...)
def callback():
   urllib2.open(...)

bottle.run(server='gevent')
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14559135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档