我需要一些建議,指導如何在部署時重啓所有氣流服務,而不會在任務中間殺死工人。爲新dags部署程序
我已經爲我的DAG編寫了一個部署過程,這些過程在virtualenv中安裝氣流和任何其他pip依賴項。一旦我的發佈目錄是準備好了,我:
- 停止氣流花,氣流工人,氣流調度,以及氣流Web服務器
- 更新「當前」 simlink指向我的新版本
- 啓動氣流花,氣流工作者,氣流調度程序和氣流網絡服務器
此部署過程的問題是工作人員立即死亡。我想爲腳本添加某種監控來暫停所有DAG,等待工作人員閒置,然後重新啓動服務,但氣流CLI無法知道啓用了哪些dag,也無法瞭解工作人員是否處於閒置狀態。
我知道許多氣流服務可以自動檢測dags文件夾中的更改,但我希望每個部署都有自己的virtualenv。如果我不重新啓動所有服務,那麼新的部署將不會在我的requirements.txt文件中找到新行。
我有同樣的問題掉隊,你有沒有找到一種方法,或者你必須實現在接受的答案中提到的一切嗎? – s7anley
我其實注意到工人們會優雅地從SIGINT中退出。我相應地更新了我的systemctl腳本 –