2013-03-04 180 views
0

我們有一個生成報告的模型。delayed_job,工作隨機消失

每個報告都可能非常複雜,可能需要很長時間才能加載。因此,我們使用delayed_job在後臺執行此操作。

一切工作在我的本地計算機上,但在我們的生產環境中,工作隨機消失。他們甚至不存在於delayed_job.log成功或失敗。創建延遲作業,但有時會刪除,而不會引發任何錯誤或執行工作。

這是我們模型的方法:

def generate_html 
    ac = DelayedJobsController.new() 
    tmp_html = ac.render_to_string partial: self.partial_path, object: self 
    self.update_attributes(html: tmp_html, done: true) 
end 
handle_asynchronously :generate_html 

回答

0

經過大量的工作,我們發現了這個問題。

當我們運行crontab -lps aux時,我們發現有兩個delayed_job實例正在運行。在我們殺死了其中最老的一個之後,他們都應該像這樣工作。