在不完全重新启动的情况下将代码部署到Airflow
我有一个芹菜apache气流设置,在EC2实例上有一个工作节点。对于代码部署,用户触发部署,将代码包复制到s3;一些与infra相关的脚本将代码包从s3复制到实例上;该实例触发所有与气流相关的服务的重新启动 我希望这样,每当我需要修改代码时,理想情况下,当前正在运行的任何作业都应该继续运行,而不使用集群设置在不完全重新启动的情况下将代码部署到Airflow,airflow,Airflow,我有一个芹菜apache气流设置,在EC2实例上有一个工作节点。对于代码部署,用户触发部署,将代码包复制到s3;一些与infra相关的脚本将代码包从s3复制到实例上;该实例触发所有与气流相关的服务的重新启动 我希望这样,每当我需要修改代码时,理想情况下,当前正在运行的任何作业都应该继续运行,而不使用集群设置 我在想,也许可以找到一种方法,在不重新启动worker的情况下重新启动web服务器和调度程序,就可以解决这个问题。根据我在LocalExecutor中使用气流的经验,只需更改 DAG定义文
我在想,也许可以找到一种方法,在不重新启动worker的情况下重新启动web服务器和调度程序,就可以解决这个问题。根据我在
LocalExecutor
中使用气流
的经验,只需更改
- DAG定义文件(可能修改DAG的结构)
- 操作员代码
- DAG/任务的输入(,
s)连接
webserver
和scheduler
)
- 只有当您更改DAG的调度参数时,即
和开始日期
,才会调度间隔
- 我读过一些建议,如果我不想重命名我的DAG,重新启动
服务也可以做到这一点。但我发现这种说法不一致(并不总是有效)aiffair
请注意,上述事实与
LocalExecutor
有关,对于CeleryExecutor
------------------------------------------------------------------------------
但是,对于调度程序调度程序(以及几乎所有长时间运行的进程),它必须不时重新启动
应经常重新启动计划程序
根据我们的经验,长期
运行调度程序进程,至少使用CeleryExecutor,结果是
没有安排一些任务。我们还不知道确切的原因,
不幸的是。幸运的是,气流在空气中有一个内置的解决方法
-num_runs标志的形式。它指定了一系列的迭代次数
调度程序将在退出之前运行其循环的所有部分。我们正在运行它
Airbnb在10次迭代中运行了5次。请注意,这将导致
使用LocalExecutor时出现问题
上述文章来自2015年,根据我在
中使用气流
的经验,不确定自那时以来情况是否发生了变化,只是改变了
- DAG定义文件(可能修改DAG的结构)
- 操作员代码
- DAG/任务的输入(,
连接
s)
不需要重新启动气流服务(webserver
和scheduler
)
- 只有当您更改DAG的调度参数时,即
开始日期
和调度间隔
,才会
- 我读过一些建议,如果我不想重命名我的DAG,重新启动
aiffair
服务也可以做到这一点。但我发现这种说法不一致(并不总是有效)
请注意,上述事实与LocalExecutor
有关,对于CeleryExecutor
------------------------------------------------------------------------------
但是,对于调度程序调度程序(以及几乎所有长时间运行的进程),它必须不时重新启动
应经常重新启动计划程序
根据我们的经验,长期
运行调度程序进程,至少使用CeleryExecutor,结果是
没有安排一些任务。我们还不知道确切的原因,
不幸的是。幸运的是,气流在空气中有一个内置的解决方法
-num_runs标志的形式。它指定了一系列的迭代次数
调度程序将在退出之前运行其循环的所有部分。我们正在运行它
Airbnb在10次迭代中运行了5次。请注意,这将导致
使用LocalExecutor时出现问题
上面的文章是2015年的,不确定自那以后情况是否发生了变化