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

Hor*_*cio 24 command-line resque redis

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

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

谢谢,

Hor*_*cio 61

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

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

在rails控制台中,我们可以使用这些命令来检查并重试失败的作业:

1 - 获取失败的工作数量:

 Resque::Failure.count
Run Code Online (Sandbox Code Playgroud)

2 - 检查错误异常类和回溯

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

作业对象是一个哈希,其中包含有关失败作业的信息.您可以检查它以查看更多信息.另请注意,这仅列出了前20个失败的作业.不确定如何列出它们所以你必须改变值(0,20)才能得到整个列表.

3 - 重试所有失败的作业:

(Resque::Failure.count-1).downto(0).each { |i| Resque::Failure.requeue(i) }
Run Code Online (Sandbox Code Playgroud)

4 - 重置失败的作业数:

 Resque::Failure.clear
Run Code Online (Sandbox Code Playgroud)

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

  • 要列出所有失败的作业,您可以这样做:`Resque::Failure.all(0,0)` (3认同)