2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Sidekiqのジョブライフサイクル [翻訳]

Posted at

Sidekiqのジョブライフサイクル

最終更新 2018/03/28 編集者 Stefan Wrobel

Web UIを最初に見たとき、ページ上部にジョブのカウンターがあることに気付くと思います。このドキュメントでは、それぞれの状態にどのような意味があるのか、ジョブが各状態間をどのように遷移するのかを解説します。

スクリーンショット 2019-10-17 17.40.03.png
  • 完了(Processed) ジョブが正常に完了した数。それ以上何かが起きることはありません。
  • 失敗(Failed) 実行されたジョブで例外が起きた(≒失敗した)回数。デフォルトのリトライ回数は25回のため、1つのジョブは最大で25回失敗する可能性があります。
  • 実行中(Busy) 現在実行中の数。
  • 待機状態(Enqueued) キューの中で実行される順番を待っている数。(キュー毎にプッシュされた時間順にリストされています)
  • 再試行(Retries) 失敗したものの、将来のどこかで自動的に再試行される数。(プッシュされた時間順に並べられて)
  • 予定(Scheduled) 将来のどこかで実行するよう指定された数。(指定時刻がくるとエンキューされます)
  • デッド(Dead) 完全に失敗してしまった数。手動で再試行できるように保存されます

※ 注意点として、1回以上失敗しその後に成功したジョブは、Processed(完了)とFailed(失敗)の両方にカウントされることがあります。

29632389-ddedb250-8810-11e7-8574-b94601ef2d8d.png

ライフサイクルを変更する

再試行の設定をワーカーまたはジョブに指定することで、再試行を完全に無効化(ジョブは「デッド」に直接送信)したり、「デッド」に送られることすら無効化(失敗したジョブは破棄)したりすることができます。もし、「失敗」の数が増えているのに「再試行」または「デッド」のカウントが増えない場合は、再試行の設定を見直してみてください。(自分で無効にしていないかどうか)

class SomeWorker
  # 「再試行」または「デッド」のどちらにも送られません
  sidekiq_options retry: false

  # 最初の失敗後にすぐ「デッド」へ送られます
  sidekiq_options retry: 0
end
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?