redis-cli 経由で resque ジョブを検査して再試行する 質問する

redis-cli 経由で resque ジョブを検査して再試行する 質問する

まだ解決しなければならない問題がいくつかあるため、サーバー上で resque-web を実行できませんが、resque キュー内の失敗したジョブをチェックして再試行する必要があります。

失敗したジョブ キューを覗いてエラーの内容を確認し、redis-cli コマンドラインを使用して再試行する方法について経験のある方はいらっしゃいますか?

ありがとう、

ベストアンサー1

次のリンクで解決策を見つけました:

http://ariejan.net/2010/08/23/resque-how-to-requeue-failed-jobs

Rails コンソールでは、次のコマンドを使用して失敗したジョブをチェックし、再試行できます。

1 - 失敗したジョブの数を取得します。

 Resque::Failure.count

2 - エラー例外クラスとバックトレースをチェックする

Resque::Failure.all(0,20).each { |job|
   puts "#{job["exception"]}  #{job["backtrace"]}"
}

ジョブ オブジェクトは、失敗したジョブに関する情報を含むハッシュです。これを調べて、詳細情報を確認できます。また、これは最初の 20 件の失敗したジョブのみをリストすることに注意してください。すべてをリストする方法がわからないため、リスト全体を取得するには値 (0、20) を変更する必要があります。

3 - 失敗したジョブをすべて再試行します。

(Resque::Failure.count-1).downto(0).each { |i| Resque::Failure.requeue(i) }

4 - 失敗したジョブの数をリセットします。

 Resque::Failure.clear

すべてのジョブを再試行してもカウンターはリセットされません。カウンターをクリアしてゼロにする必要があります。

おすすめ記事