每小时运行后台作业n次(ruby on rails)

时间:2017-07-05 12:29:13

标签: ruby-on-rails ruby cron

我正在使用resque进行作业调度。我想每1小时做一份工作,只做N次。 我也希望将作业中的计数作为参数传递

例如:

i=0
50.times do 
   every 1.hour, roles: [:whenever_cron] do
     runner "Resque.enqueue(SomeJob, i+1)"
   end 
end

我该怎么做?

注意: - 我不想每小时运行50个作业。我想要完成50次工作

1 个答案:

答案 0 :(得分:2)

计划语法适用于重复作业。那些一次又一次地发生的事情,直到时代的结束。

对于单次作业,您可以选择延迟(这是您需要的)。因此,您可以一次性排队整批作业,增量为1小时:

1.upto(50).each do |x|
  Resque.enqueue_in(x.hours, SomeJob)
end