delayed_job の使い方をちょっとだけ調べた(プロジェクトの wiki 読んだだけだけど)。
調べた結果、今回やりたいこととは若干合わない感じだったので結局使わないことにした。
delayed_job
http://github.com/tobi/delayed_job
プライオリティを指定してジョブを登録する
“1″ がプライオリティ。
デフォルトは “0″。
Delayed::Job.enqueue(NewsletterJob.new('text', User.find(:all).collect(&:email)), 1)
時間を指定してジョブを登録する
“5.minutes.from_now” とすることで 5 分後にジョブを実行するように指定できる
“0″ はデフォルトのプライオリティ。
Delayed::Job.enqueue(NewsletterJob.new('text', User.find(:all).collect(&:email)), 0, 5.minutes.from_now)
設定
最大試行回数(MAX_ATTEMPTS)等を指定することができる。
# config/initializers/delayed_job_config.rb
Delayed::Job.destroy_failed_jobs = false
silence_warnings do
Delayed::Job.const_set("MAX_ATTEMPTS", 3)
Delayed::Job.const_set("MAX_RUN_TIME", 5.minutes)
end
