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