如何使用长时间运行的作业继续部署

时间:2017-08-11 17:51:36

标签: ruby-on-rails deployment background-process sidekiq delayed-job

我们目前使用delayed_job和rails来管理系统中一些长时间运行的作业。其中一些工作需要花费数小时才能运行,但我们也喜欢频繁部署,通常每天多次部署。此设置的问题是我们必须在部署期间重新启动delayed_job以获取代码更改,以便使用最新代码处理任何新作业。

我们得出的解决方案是,对于任何需要运行超过一小部分时间的作业,我们将延迟作业分叉,以便立即返回,并且分叉进程处理工作。通过这种方式,部署可以重新启动所有延迟的作业流程,而长期运行的作业则可以重新启动。继续前进,直到它成为一个孤儿的过程。

我们已经查看了sidekiq,但在尝试部署新代码时,我们似乎遇到了同样的问题。

是否有人制定了一个解决方案,建议他们处理跨多个部署的长时间运行后台进程?

0 个答案:

没有答案