我需要一些建议,指导如何在部署时重启所有气流服务,而不会在任务中间杀死工人。为新dags部署程序
我已经为我的DAG编写了一个部署过程,这些过程在virtualenv中安装气流和任何其他pip依赖项。一旦我的发布目录是准备好了,我:
- 停止气流花,气流工人,气流调度,以及气流Web服务器
- 更新“当前” simlink指向我的新版本
- 启动气流花,气流工作者,气流调度程序和气流网络服务器
此部署过程的问题是工作人员立即死亡。我想为脚本添加某种监控来暂停所有DAG,等待工作人员闲置,然后重新启动服务,但气流CLI无法知道启用了哪些dag,也无法了解工作人员是否处于闲置状态。
我知道许多气流服务可以自动检测dags文件夹中的更改,但我希望每个部署都有自己的virtualenv。如果我不重新启动所有服务,那么新的部署将不会在我的requirements.txt文件中找到新行。
我有同样的问题掉队,你有没有找到一种方法,或者你必须实现在接受的答案中提到的一切吗? – s7anley
我其实注意到工人们会优雅地从SIGINT中退出。我相应地更新了我的systemctl脚本 –