delayed_job,工作随机消失

时间:2013-03-04 21:42:09

标签: ruby-on-rails ruby 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

1 个答案:

答案 0 :(得分:0)

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

当我们运行crontab -lps aux时,我们看到两个delayed_job实例正在运行。在我们杀死其中最老的一个之后,所有人都应该这样做。