2017-07-05 14 views
0

私はジョブスケジューリングにresqueを使用しています。 1時間ごとにN回だけ仕事をしたい。 は、私はまた、例えば、引数毎時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

は、データベース –

答えて

2

スケジューリングの構文はの繰り返しですジョブです。時間の終わりまで何度も何度も起こるもの。

シングルショットジョブでは、オプションの遅延(ここで必要なもの)でエンキューします。だから、あなただけの1時間単位で、すべてを一度あなたの仕事の全体のバッチをキューに入れることができます:あなたがする必要がある場合、カウントのために

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

に保存された❤これは、X/Yの問題の完璧な例です。 – mudasobwa

関連する問題