首页 > 解决方案 > 部署和更新长期运行的流程的好方法是什么?

问题描述

我有一个在服务器上运行的进程。

仅供参考,我正在尝试为 nodejs 和 Python 解决相同的问题 - 我真的不认为特定的服务器/语言很重要,因为问题更多的是关于部署方法。

该过程所做的工作可能需要几秒钟到几小时才能运行。

我正在尝试解决如何为流程部署更新的代码。

我不想只是在它正在做的事情中间停止这个过程,因为害怕失去在长期运行的过程中到目前为止所做的所有工作。

那么,当新代码到达时,让进程优雅地退出并重新启动的好方法是什么?

我使用 systemd 来运行 nodejs 服务。

我使用 Ansible 来部署更新,并不是说这真的很重要。

我想也许在每次执行长时间运行的过程结束时,服务器可以检查是否某些文件已作为某种标志放置在磁盘上,以指示它应该退出并重新启动,但这似乎有点脆弱和 hacky。

有没有人对这种事情有更好的机制?

标签: deployment

解决方案


推荐阅读