通过redis-cli检查并重试resque作业

时间:2012-01-10 03:55:36

标签: command-line redis resque

我无法在我的服务器上运行resque-web,因为我仍然需要处理一些问题,但我仍然需要在我的resque队列中检查并重试失败的作业。

有没有人有关于如何查看失败的作业队列以查看错误是什么以及如何使用redis-cli命令行重试它的经验?

感谢,

1 个答案:

答案 0 :(得分:61)

在以下链接上找到解决方案:

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

重试所有作业不会重置计数器。我们必须清除它,使其变为零。