气流-仅一次如何“填充DagBag”

时间:2019-04-25 15:40:43

标签: airflow airflow-scheduler orchestration apache-airflow-xcom

我的dag需要大约50秒的时间来解析,我只使用外部触发器来启动dag运行,没有时间表。我注意到气流想要大量填充dagbag->在每个trigger_dag命令上,在后台,它会不断检查dags文件夹,并在部署新.py之后似乎立即创建.pyc文件。

无论如何,我可以部署集群并填补一次垃圾!然后,在接下来的2周中,可以在任何trigger_dag上立即启动dagruns(现在仅需要50秒钟即可填充dagbag,然后再开始)。我不需要在两周内更新dag的定义。

1 个答案:

答案 0 :(得分:0)

50秒对于DAG实例化来说是非常多的时间。看起来您在DAG文件中使用了一大段代码(或者只是长时间工作)。 very不好practice

  

注意::这意味着DAG文件中的所有顶级代码(即未定义DAG的所有代码)将在每个调度程序心跳中运行。除非绝对必要,否则请尽量避免在DAG文件中使用顶级代码。

气流完全按照您的描述工作。这就是为什么您应该将DAG文件夹中的Python文件主要视为配置文件(具有某些编程功能)的原因。您无法使用任何魔术配置键或类似功能更改它。这种行为是Airflow的核心。