我们使用的API每小时施加一个速率限制。
我想知道什么是每小时对我们自己的脚本向API进行一定数量请求的最佳方法。即:每小时提出10个请求,但不要超过我们的限额,并避免多收费用。
我本来只是想在循环中使用sleep(60*6)
,但是API调用可能要花几分钟,因此它所进行的请求可能比允许的要少得多。
传播我们的请求的最佳实践是什么?
编辑:
我结束了这样的事情,你们怎么看?
while(queue.size > 0) do
Thread.new {
element = queue.pop
# do the rate limited API calls and things
}
sleep(60*6)
end
答案 0 :(得分:0)
考虑rack attack中间件
总结一下-您将给定时间内特定客户端(通过IP,身份或其他任何形式知道的)执行的请求的数量(在内存中,在redis
之类的数据库中)保存在某个位置。