在resque中寻找时间表 - 红宝石

时间:2013-03-21 00:28:23

标签: ruby resque

我正在使用resque来处理一些后台作业(比如cron作业)。所以我解雇了这两个佣金任务:
$> rake resque:工作
$> rake resque:scheduler

我的问题是如何找到工作人员和调度程序正在运行?对于工人我可以使用

Resque::Worker.all列出所有正在运行的工作人员。它工作正常。但我一直无法找到如何查找调度程序是否运行(或列出所有预定作业)。我尝试了Resque::Scheduler.print_schedule,但是即使我已经运行了rake resque:scheduler

,它也不会打印计划并始终返回epmty哈希

2 个答案:

答案 0 :(得分:2)

您需要的方法是

Resque.get_schedules 

它显示当前计划作业及其相关元数据的哈希值。

 {
    "job1"=> {
       "every"=>"30s",
       "class"=>"JobClass",
       "args"=>[1],
       "queue"=>"default",
       "description"=> "Testing..."
    }
}

如果您没有动态添加任何作业,即您没有使用resque-scheduler的动态设置

Resque::Scheduler.dynamic = true

然后

Resque.schedule

会给你相同的结果。

答案 1 :(得分:0)

我也在寻找列出所有预定的工作......

Resque.count_all_scheduled_jobs

仅显示数字。

我在

中尝试了几种方法
Resque.metaclass.instance_methods-Class.methods

但没有运气。必须进入他们的Github源