首页 > 解决方案 > 如何解决速率限制 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

希望减少运行此脚本所需的时间。

标签: pythonrestapirate-limiting

解决方案


推荐阅读