我很困惑气流如何通过调度程序来获取新DAG代码中的更改。
有人可以阐明气流调度程序如何与新代码一起工作吗?每次我在DAG中更改代码时,都需要停止并重新运行airflow scheduler
吗?还是可以设置--num_runs 1
并在每次进行新更改时运行它?
谢谢!
答案 0 :(得分:3)
调度程序应该一直运行。您应该只运行airflow scheduler
,而无需使用num_runs
参数。调度程序被设计为一个长期运行的过程,一个无限循环。它协调正在完成的工作,这是气流的核心。如果它没有运行,那么您就不会安排更多工作要做。
循环的每次迭代都会重新加载DagBag
,这是已加载DAG的集合。对DAG的任何修改以及DAG的删除/添加都应在下一个调度程序循环中反映出来。
答案 1 :(得分:0)
Airflow的调度程序会定期并连续检查DAG的位置,以扫描和刷新DAG。如果您不更改配置,则只需在每个回合之间暂停几秒钟即可完成。
引入--num_run
参数不是出于刷新目的,而是出于可靠性考虑:
Airflow正式建议here使用num_runs
和/或run_duration
配置参数应经常重新启动调度程序。