在Ruby中每小时设置一定数量的请求吗?

时间:2018-06-28 17:08:19

标签: ruby

我们使用的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

1 个答案:

答案 0 :(得分:0)

考虑rack attack中间件

总结一下-您将给定时间内特定客户端(通过IP,身份或其他任何形式知道的)执行的请求的数量(在内存中,在redis之类的数据库中)保存在某个位置。