こんにちは、endoです。
今回はDelayedJob
先生のバックグラウンドの処理が重くて、スワップが発生してサーバーがお亡くなりになりました。
対処として、サーバー再起動を行いました。
この時、サーバー再起動で処理は繰り返されないだろうと勘違いしていました。
弊社ではDelayedJobの設定でリトライをしないようにしております。
詳細はDelayed::Job で絶対にやっておいた方がいいたった1つの設定 をご確認ください。
視界、夜中に再度実行されてまた、サーバーがお亡くなりになりました・・・
- サーバー再起動
- 8時間後にもう一度再実行←こいつの正体が意味わからない
設定を確認しました。
config/initializers/delayed_job_config.rb
Delayed::Worker.max_run_time = 8.hours ←こいつ
DBに書き込みをしていないので、DelayedJobが生きていると判断してくれて、再度実行するように気を利かせてくれました。
なので、DelayedJobで落ちるようなことがあったら、確実に失敗させましょう。
Delayed::Job.find(x).fail!←IDは適当に書き換えてください。
以上です。