当天DAG A完成后,气流DAG B运行很多次

时间:2018-06-29 19:15:21

标签: airflow airflow-scheduler

DAG A的时间表为“ 0 6 * * *”。

DAG B的时间表为“ * / 5 * * * *”。

但是,只有当DAG A在当天完成后,DAG B才应在当天开始运行。

我玩过SubDags和ExternalTask​​Sensor,但是还没有找到令人满意的解决方案,我敢肯定我错过了一些好东西。建议?

编辑:说DAG A是我的ETL。 DAG B的某些任务查询我的数据库,并要求该数据是最新的。 DAG B全天运行,但仅在ETL完成后运行。

例如,我可以看到使用ShortCircuitOperator,并且条件为“今天运行的DAG A已完成”。但是我怎么写这个条件呢?

2 个答案:

答案 0 :(得分:2)

此问题并非完全相同,但与已经有3个好的答案的另一个问题类似:Scheduling dag runs in Airflow

我建议通读所有内容,但是要总结那里答案中的信息,对于依赖于另一个DAG的DAG用例,有几种可行的选择:

  • TriggerDagRunOperator
  • BranchPythonOperator
  • ShortCircuitOperator
  • SubDagOperator / SubDAG
  • 使用这些选项中的任何一个,您可能要尝试使用触发规则
  • 外部触发器(可能与您的用例无关)

如果您可以围绕您要完成的用例添加更多详细信息,我也可以提供更具体的指导。

答案 1 :(得分:0)

使用TriggerDagRunOperator来调用DAG以使其运行。请参阅此question。害怕我无法提供令人满意的示例,因为我还没有使用过它。