0

我们有一个生成报告的模型。

每个报告都可能非常复杂,并且可能需要很长时间才能加载。因此,我们使用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
4

1 回答 1

0

经过大量的工作,我们发现了问题。

当我们确实运行时crontab -lps aux我们看到两个 delay_job 实例正在运行。在我们杀死了其中最老的一个之后,它们都按原样工作了。

于 2013-03-05T19:35:33.063 回答