我的调查模型有大约 2500 个实例,我需要将该set_state
方法应用于每个实例两次。只有在每个实例都应用了一次方法之后,我才需要第二次应用它。(一个实例的状态可以依赖于其他实例的状态。)
我delayed_job
用来创建延迟的工作并workless
根据需要自动放大/缩小我的工人测功机。
该set_state
方法通常需要大约一秒钟的时间来执行。所以我在 heroku 控制台上运行了以下命令:
2.times do
Survey.all.each do |survey|
survey.delay.set_state
sleep(4)
end
end
重载 API 不应该有任何问题,对吧?
然而,对于每个延迟的工作,我仍然在我的日志中看到以下内容:
Heroku::API::Errors::ErrorWithResponse: Expected(200) <=> Actual(429 Unknown)
我没有看到任何无限循环——它只是在我创建延迟作业后立即返回此消息。
如何避免破坏 Heroku 的 API 速率限制?