gpt4 book ai didi

Python gevent+瓶子。查询 API。如何使用gevent防止超时锁?

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:56 31 4
gpt4 key购买 nike

我正在使用 gevent + bottle 进行以下操作:

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

我已经为 API 调用 (httplib/socket) 设置了一个超时时间,但是如果它设置为 5 秒(例如),我的 python 脚本在那段时间很忙并且无法返回任何其他页面(这是正常)。

问题:我能以某种方式巧妙地使用 gevent(也许在单独的脚本中吗?)来处理如此长的请求?

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

我不是经验丰富的程序员,所以感谢您的帮助!

最佳答案

其实你的问题不应该存在。 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')

关于Python gevent+瓶子。查询 API。如何使用gevent防止超时锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14559135/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com