我们将JobA的工作重新命名为JobB。部署更改时,队列中有一些作业。现在旧的工作一直在重试并且一直在失败。下面这份工作实际上已经在3周前排队了,而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}"
}
如何清除一类作业的重试队列?
答案 0 :(得分: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 }