2013-03-04 153 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实例正在运行。在我们杀死了其中最老的一个之后,他们都应该像这样工作。