每小时运行一次后台作业 n 次(轨道上的 Ruby)



我正在使用resque进行作业调度。我想每 1 小时运行一次作业,并且只运行 N 次。 我还想在作业中传递计数作为参数

例如:

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

我该怎么做?

注意 : -我不想每小时运行 50 个作业。我想运行 1 个作业 50 次

计划语法适用于重复作业。那些一遍又一遍地发生,直到时代的尽头。

对于单次作业,您可以将它们排队,并具有可选的延迟(这是您在此处需要的(。因此,您可以一次将整批作业排队,增量为 1 小时:

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

最新更新