我正在创建一个库,我将delayed_job作为 heroku 上的后台服务运行。
lib 方法的重点是命中 API 来处理大量数据。我正在点击的 API 限制为每 600 秒 600 个图形 API 请求。
话虽如此,我想知道是否有可能确保我延迟的工作不会超过这一点。
像这样:
requests_made = 0
@items.each do |x|
if request_made >= 600
pause for 1 second??????? Is this possible?
end
### HIT THE API
requests_made = requests_made + 1
end
这样的事情可能吗?可以暂停吗?Heroku 的延迟作业将运行一个作业长达 4 小时,因此我认为超时不会成为问题。思潮?
sleep(1)
可能是最明确和最简单的方法。使用它会有问题吗?
添加为对评论的响应
要测量调用 API 所花费的时间,请执行
start_time = Time.now
call_the_API
spent_time = Time.now - start_time
然后你可以对spent_time
做一些条件。