繁体   English   中英

Airflow DAGS 编排

[英]Airflow DAGS Orchestration

谁能帮我吗? 我有三个 DAG(比如 DAG1、DAG2 和 DAG3)。 我有一个 DAG1 的月度调度程序。 DAG2 和 DAG3 不得直接运行(这些没有调度程序),并且必须仅在 DAG1 成功完成时运行。 也就是说,一旦 DAG1 完成,DAG2 和 DAG3 将需要并行启动。 谁能告诉我这样做的最佳机制是什么? 我遇到了 TriggerDAGRun 和 ExternalTaskSensor 选项。 如果有人可以指定每种方法的优缺点以及哪个是最好的,那就太好了。 我看到一些关于这些的问题。 但是,试图找到最新稳定版 Airflow 的答案。 任何人都可以对此有所了解吗? 提前致谢!

ExternalTaskSensor Sensor 与您的用例无关,因为您提到的所有 DAG 都不需要等待另一个 DAG。

您需要在 DAG1 的代码中设置TriggerDagRunOperator ,这将触发 DAG2、DAG3 的 DAG 运行。

解决方案的骨架将是:

dag2 = DAG(dag_id="DAG2", schedule_inteval=None)
dag3 = DAG(dag_id="DAG3", schedule_inteval=None)

with DAG(dag_id="DAG1", schedule_inteval="@monthly") as dag1:

    op_first = DummyOperator(task_id="first") #Replace with operators of your DAG
    op_trig2 = TriggerDagRunOperator(task_id="trigger_dag2", trigger_dag_id="DAG2")
    op_trig3 = TriggerDagRunOperator(task_id="trigger_dag3", trigger_dag_id="DAG3")

    op_first >> [op_trig2, op_trig3]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM