使用Airflow零停机时间部署

时间:2019-08-02 14:43:29

标签: deployment continuous-integration celery airflow airflow-scheduler

我的团队正在使用Airflow安排ETL作业。现在,我们在LocalExecutor上。我们还进行持续集成。

现在,当我们交付某些类型的更改(例如,添加新的操作员)时,我们必须重新启动产品气流调度程序,以获取更改。当我们重新启动调度程序时,任何正在运行的任务都会被杀死,必须重新启动,这是一个巨大的痛苦。

我试图弄清楚如何避免需要重新启动调度程序或防止正在运行的任务因调度程序重新启动而中断。我读过一些有关该主题的文章,例如this one,但没有一篇使用LocalExecutor的文章。

要完成此任务,是否需要升级为Celery作为执行者?或者有办法在LocalExecutor上做到吗?

1 个答案:

答案 0 :(得分:2)

如果使用LocalExecutor,则无法实现所需的目标。使用CeleryExecutor,即使您重新启动调度程序,至少当前正在运行的任务将继续运行。但是,您也需要将新的东西部署到工作程序(Celery)上,但是可以通过向现有工作程序发送正常的关闭信号,并使用更新的代码创建一组新的工作程序来正确实现。