2
我正在使用延遲作業在特定時間異步執行作業。這是在我的模型類中指定的。現在我需要弄清楚如何重新安排工作以防我需要重新安排工作。如果我可以在我的模型上有一個方法來檢索作業並更新run_at時間,那將會很好。我怎樣才能做到這一點與延遲的工作?延遲作業:如何檢索和更新預定作業?
我正在使用延遲作業在特定時間異步執行作業。這是在我的模型類中指定的。現在我需要弄清楚如何重新安排工作以防我需要重新安排工作。如果我可以在我的模型上有一個方法來檢索作業並更新run_at時間,那將會很好。我怎樣才能做到這一點與延遲的工作?延遲作業:如何檢索和更新預定作業?
您可以在延遲::工作模式簡單地工作(比如說ActiveRecord的,如果你使用delayed_job_active_record)
的問題是,你想要什麼樣的工作來檢索,以及如何採取照顧。 不管你如何管理你的工作爲以後的檢索,你應該使用類似:
# submit the job and remember id
job_id_remember_for_later = Delayed::Job.enqueue(job).id
#...
# later
job = Delayed::Job.find_by_id(job_id_remember_for_later)
job.update_attributes(:run_at => new_time, :attempts => 0)
job.save
這個代碼肯定不安全,你需要檢查鎖等 另外請注意,你需要配置的delayed_job保持失敗的作業(在max_attempts失敗後被刪除)。
Delayed::Worker.destroy_failed_jobs = false
好主意。謝謝。 – Andrew
嗨,我有同樣的事情。爲什麼你必須保持失敗的工作。我們不想在更新時間之前重新安排時間,並且它是否會被刪除?我錯過了什麼嗎? – Federico