大佬们,怎么控制本地请求 API 的频率?

2022-10-14 21:27:20 +08:00
 biuyixia

某 API 服务限制每个 IP 每秒最多 5 个请求

某 IP 服务器上有多个 Python 文件,这几个文件运行后都有可能去请求这个 API ,有时候每秒会超过 5 次。

大佬们,有什么好方法能从自己服务器上控制这个请求频率呢,要是一个 Py 文件还好说,关键多个 Py 文件。

谢谢。

2446 次点击
所在节点    Python
5 条回复
coderxy
2022-10-14 21:38:31 +08:00
用 redis 或者数据库做计数,秒级限流
nulIptr
2022-10-14 21:41:18 +08:00
感觉这个需求很奇怪,八成是 xy 问题
不过实现也很容易,搞个本地的代理服务器来限流就行了啊。流量先打到你的代理,限流之后再发给真正的 api
S1ngleton
2022-10-15 00:33:13 +08:00
起一个服务,发放令牌,每个 py 请求前先去获取,获取到则请求
tt7
2022-10-15 00:41:19 +08:00
用一个带 rate limit 的 local http proxy

比如 https://github.com/Clever/sphinx
zyxbcde
2022-10-15 18:22:45 +08:00
这题我会,我遇到过。
async with Lock:
Asyncio.sleep(0.25)
Session.get()
我本地起了一个后端自测请求确实是间隔 0.25 秒发过来的。不过还需要注意如果接口慢叠加最大连接数影响,还有网络延迟之类的。你一秒发出去 5 个请求,到服务器时候可能一秒 4 个也可能有 6 个...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/887013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX