我们应该让气流调度程序运行多长时间?

时间:2018-07-17 18:27:11

标签: airflow airflow-scheduler

我很困惑气流如何通过调度程序来获取新DAG代码中的更改。 有人可以阐明气流调度程序如何与新代码一起工作吗?每次我在DAG中更改代码时,都需要停止并重新运行airflow scheduler吗?还是可以设置--num_runs 1并在每次进行新更改时运行它?

谢谢!

2 个答案:

答案 0 :(得分:3)

调度程序应该一直运行。您应该只运行airflow scheduler,而无需使用num_runs参数。调度程序被设计为一个长期运行的过程,一个无限循环。它协调正在完成的工作,这是气流的核心。如果它没有运行,那么您就不会安排更多工作要做。

循环的每次迭代都会重新加载DagBag,这是已加载DAG的集合。对DAG的任何修改以及DAG的删除/添加都应在下一个调度程序循环中反映出来。

答案 1 :(得分:0)

Airflow的调度程序会定期并连续检查DAG的位置,以扫描和刷新DAG。如果您不更改配置,则只需在每个回合之间暂停几秒钟即可完成。

引入--num_run参数不是出于刷新目的,而是出于可靠性考虑: Airflow正式建议here使用num_runs和/或run_duration配置参数应经常重新启动调度程序