2012-01-10 14 views
23

私はまだ動作する必要があるため、私のサーバー上でresque-webを実行できませんが、resqueキューの失敗したジョブを確認して再試行する必要があります。redis-cliを使用してresqueジョブを検査して再試行します

エラーが発生したジョブキューを覗いてみて、どのようにしてredis-cliコマンドラインを使って再試行するのか経験者はいますか?

おかげで、

+1

Resqueにはあらゆる種類のヘルパーがあるので、ルビコンソールを使用する方が簡単です。なぜあなたはredis-cliで直接それをしたいのですか? – marcgg

+0

おかげさまで、あなたが推奨するようにレールコンソールを使用して私の問題を解決しました。 – Horacio

答えて

57

には、以下のリンクで解決策が見つかりました:私たちは失敗したジョブをチェックし、再試行するには、これらのコマンドを使用することができ、レールコンソールで

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

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 

再試行するすべてのジョブは、カウンタをリセットしないでください。ゼロになるようにクリアする必要があります。

+0

Resqueには、エラーとそのスタックトレースを表示するための簡単に設定可能なWebインターフェイスがあることを忘れないでください。詳細については、https://github.com/resque/resqueを参照してください。 –

+0

失敗したすべてのジョブをリストするには、次のようにします: 'Resque :: Failure.all(0,0)' –

関連する問題