2017-08-02 7 views
1

私はJobAからJobBにジョブの名前を変更しました。変更が配備されたとき、キューにはいくつかのジョブがありました。今、古いジョブは再試行を続け、失敗を続けています。このジョブは実際には3週間前にキューに入れられ、Sidekiqはまだそれをやり直しています。Sidekiqが終了せずに古いジョブを再試行する

{ 
    "context": "Job raised exception", 
    "job": { 
    "args": [ 
     5105 
    ], 
    "class": "JobA", 
    "created_at": 1499822416.4738095, 
    "enqueued_at": 1499822417.145876, 
    "jid": "b32957f3e0ad6b89b1331e46", 
    "queue": "default", 
    "retry": true 
    }, 
    "jobstr": "{\"class\":\"JobA\",\"args\":[5105],\"retry\":true,\"queue\":\"default\",\"jid\":\"b32957f3e0ad6b89b1331e46\",\"created_at\":1499822416.4738095,\"enqueued_at\":1499822417.145876}" 
} 

ジョブクラスの再試行キューをクリアするにはどうすればよいですか?

答えて

4

は、これが最もsidekiqバージョンのために私のためにどのような作品です:

Sidekiq::RetrySet.new.clear 

Sidekiq::ScheduledSet.new.clear 

の統計情報をクリアし

Sidekiq::Stats.new.reset 

特定のジョブ

rogue = Sidekiq::RetrySet.new.select { |job| /JobA/.match(job.value) } 
rogue.each { |job| job.delete } 
+0

先端をありがとうをクリアします。私はRetrySetで私の不正な仕事を見つけました。しかし、私は全体のセットを核にしたくないです。私がサブセットをクリアする方法はありますか? Sidekiq :: RetrySet.new.select {|仕事| /JobA/.match(job.value)} –

+0

ソリューションを改善するためにあなたの答えを編集しました –

+1

ありがとう@SanjitSaluja私はあなたがしたことが好きです:) – MZaragoza

関連する問題