【发布时间】:2015-07-06 15:44:37
【问题描述】:
在 Heroku 上,我使用 delay_job 来运行异步任务。在我执行 git push heroku master 之前一切都很好,然后 Heroku 环境会杀死所有正在进行的工作线程。
这里的问题是这些作业永远不会重新排队,因为我的数据库中的延迟作业表显示它们仍处于锁定和运行状态,即使曾经为它们提供服务的工人早已死亡。
如何防止这种情况发生?我希望 Heroku 在关闭之前等待所有正在进行的延迟作业完成或出错,或者至少终止它们并允许在服务器从应用更改后重新启动后重新分配给它们根据我的更新。
【问题讨论】:
-
delayed_job不支持restart参数吗?这不太理想,因为等待会更干净,但实际上,等待会超时,最终会终止工作。
标签: heroku delayed-job worker