Sidekiqのジョブライフサイクル
最終更新 2018/03/28 編集者 Stefan Wrobel
Web UIを最初に見たとき、ページ上部にジョブのカウンターがあることに気付くと思います。このドキュメントでは、それぞれの状態にどのような意味があるのか、ジョブが各状態間をどのように遷移するのかを解説します。

- 完了(Processed) ジョブが正常に完了した数。それ以上何かが起きることはありません。
- 失敗(Failed) 実行されたジョブで例外が起きた(≒失敗した)回数。デフォルトのリトライ回数は25回のため、1つのジョブは最大で25回失敗する可能性があります。
- 実行中(Busy) 現在実行中の数。
- 待機状態(Enqueued) キューの中で実行される順番を待っている数。(キュー毎にプッシュされた時間順にリストされています)
- 再試行(Retries) 失敗したものの、将来のどこかで自動的に再試行される数。(プッシュされた時間順に並べられて)
- 予定(Scheduled) 将来のどこかで実行するよう指定された数。(指定時刻がくるとエンキューされます)
- デッド(Dead) 完全に失敗してしまった数。手動で再試行できるように保存されます。
※ 注意点として、1回以上失敗しその後に成功したジョブは、Processed(完了)とFailed(失敗)の両方にカウントされることがあります。
ライフサイクルを変更する
再試行の設定をワーカーまたはジョブに指定することで、再試行を完全に無効化(ジョブは「デッド」に直接送信)したり、「デッド」に送られることすら無効化(失敗したジョブは破棄)したりすることができます。もし、「失敗」の数が増えているのに「再試行」または「デッド」のカウントが増えない場合は、再試行の設定を見直してみてください。(自分で無効にしていないかどうか)
class SomeWorker
# 「再試行」または「デッド」のどちらにも送られません
sidekiq_options retry: false
# 最初の失敗後にすぐ「デッド」へ送られます
sidekiq_options retry: 0
end