私の調査モデルには約 2500 のインスタンスがあり、set_state
各インスタンスにメソッドを 2 回適用する必要があります。すべてのインスタンスにメソッドが 1 回適用された後でのみ、2 回目に適用する必要があります。(インスタンスの状態は、他のインスタンスの状態に依存する場合があります。)
delayed_job
遅延ジョブを作成workless
し、必要に応じてワーカー dyno を自動的にスケールアップ/ダウンするために使用しています。
通常、set_state
メソッドの実行には約 1 秒かかります。そこで、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 レート制限を超えないようにするにはどうすればよいですか?