DelayedJobのバックグランド処理でサーバーが落ちた時にすること

区分
Rails
報告者

こんにちは、endoです。

今回はDelayedJob先生のバックグラウンドの処理が重くて、スワップが発生してサーバーがお亡くなりになりました。

対処として、サーバー再起動を行いました。

この時、サーバー再起動で処理は繰り返されないだろうと勘違いしていました。

弊社ではDelayedJobの設定でリトライをしないようにしております。

詳細はDelayed::Job で絶対にやっておいた方がいいたった1つの設定 をご確認ください。

視界、夜中に再度実行されてまた、サーバーがお亡くなりになりました・・・

  1. サーバー再起動
  2. 8時間後にもう一度再実行←こいつの正体が意味わからない

設定を確認しました。

config/initializers/delayed_job_config.rb

Delayed::Worker.max_run_time = 8.hours ←こいつ

DBに書き込みをしていないので、DelayedJobが生きていると判断してくれて、再度実行するように気を利かせてくれました。

なので、DelayedJobで落ちるようなことがあったら、確実に失敗させましょう。

Delayed::Job.find(x).fail!←IDは適当に書き換えてください。

以上です。

トップページに戻る

技師部隊からの
お知らせ

【求人】エンジニア募集しています。

本頁の来客数
八十七万千百七十六名以上(計測停止中)

メンバー一覧

アクトインディ技師部隊員名簿

アクトインディ技師部元隊員

アクトインディへ

カテゴリー

アクトインディ

aaaa