2013-01-16 34 views

回答

2

不幸的是,沒有內置的方式來使用delayed_job暫停和恢復作業。請參閱以下GitHub問題:https://github.com/collectiveidea/delayed_job/issues/58

這並不是說您無法通過其他工作來完成此任務。您可能需要定期檢查數據庫,以確定是否應該繼續等待。定義如何完成「等待」是另一回事。更可能的是,最好的辦法是設計一種「暫停」動作來停止當前作業並保存其狀態。 「恢復」將啓動另一項繼續停止工作的工作。

+0

謝謝。我設計了一種方法來定義工作狀態,以滿足我的要求以恢復或重新計劃。但我面臨着阻止正在運行的工作的問題。有沒有辦法阻止delayed_job的特定運行作業? –

+0

@MarufHasan我想你會在那裏採用類似的方法。定期運行正在運行的作業,檢查它是否爲當前狀態,如果它被告知停止,則停止執行作業的剩餘部分,並可能調用表示delayed_job的ActiveRecord對象上的'destroy'。這個問題討論刪除那些delayed_job對象:http://stackoverflow.com/questions/3638250/how-to-cancel-scheduled-job-with-delayed-job-in-rails –