我目前有一个rails应用程序,可以将任务发送到resque队列。在rails应用程序中,进度条通过ajax轮询提供“完成百分比”读数。这一切都运行良好...除非resque关闭,在这种情况下,进度条永远位于零,没有通知用户任务不会运行(至少,直到有人启动resque worker)。
我的问题是:如果resque实际上没有启动,有没有办法将异常冒泡回rails应用程序?
答案 0 :(得分:1)
AFAIK我不认为v1-x-stable
至少在Resque
中至少存在这样的功能。
但Resque::Worker.all
有一些方便的方法可以帮助最终
all
=>返回Resque::Worker.working
工作人员名单
currently running workers
=>返回*
现在,如果你的队列是Resque::Worker.all.empty?
(全球队列),那么我相信
检查以上
Resque::Worker.length == 0
或Resque::Worker.present?
或*
会为你做的伎俩
<案例2现在,如果你没有progress_bar
(全局队列)或许你需要挂钩你的一些代码来实现这一点(假设你的队列名称是Resque::Worker.all.map { |worker| worker worker.to_s.split(':') =~ /(\*|progress_bar)/ }.present?
)
*
我正在检查progress_bar
GLOBAL QUEUE 以及{{1}} QUEUE,而且我也不确定正则表达式是否已损坏您是否可以检查我相信你的结局
在任何特定时间,如果您想要关于Resque worker或job Just的元数据,Redis是非常棒的信息来源。
希望这个帮助