python - 如何解决速率限制 API?
问题描述
我有大约 12000 个请求需要向 API 发出,该 API 的速率限制为每个令牌每分钟 100 个请求。我可以在 <= 20 秒内拉出 100 个请求假设我只使用 1 个令牌,我是否限制了这个脚本需要两个小时才能运行,或者是否有我没有看到的最佳策略?
天真的第一种方法是发出 100 个请求,然后等待 61 秒。我高度怀疑这是最优的。通常如何计算每分钟 100 个请求?是否会每隔“日历”分钟计算一次(例如,我在 12:01:39 收到 100 个请求,在 12:01:59 完成,然后我能否在 12:02:01 再发出 100 个请求?)动态计算,因为每个请求在其时间戳的前 60 秒内不能有超过 99 个请求,否则会引发错误?
天真的第一次尝试:
for task_id in task_IDs:
if (counter % 100) == 0 and counter != 0:
time.sleep(61)
CODE
else:
CODE
希望减少运行此脚本所需的时间。
解决方案
推荐阅读
- javascript - 这个 handleChange 方法在做什么?
- python - “TypeError:drop_duplicates() 在 PANDAS 中有一个意外的关键字参数 'ignore_index'”
- javascript - 如何将选择下拉列表附加到 HTML 数据表?
- python - 使用带索引的字典向 pandas 数据框添加一列
- android - Android OpenGL:如何更改单个 TextureView 位图?
- python - 如何在python中动态地将文本添加到多个文件中
- gcc - 如何防止 GCC 在链接时优化期间插入 memset?
- spring-boot - 无法在骆驼路线中使用 Bean 方法
- javascript - 来自数组项目的 2 个随机值
- spring-boot - 将 Springboot/Thyleaf 对象传递给 Modal 表单的方法有哪些?