Airflow ExternalTask​​Sensors - 创建dags依赖项

时间:2017-09-18 12:31:26

标签: python apache-airflow airflow-scheduler

我想在DAG A和DAG B上创建dag依赖.DAG A有两个任务:TASK1和TASK2。 DAG B有3个任务:TASK1,TASK2和TASK3。

我的要求是DAG B在DAG A TASK1之后开始。

两个DAGS都是按小时运行,DAG A每小时运行一次EX:10.00,DAG B运行@Everyvery every:10.30。

我正在使用Airflow和运营商EXternalTask​​Sensors,但它无法正常工作。

external_dag_id='DAG A',
external_task_id='TASK1',
allowed_states=None,
execution_delta=None,
execution_date_fn=None,

1 个答案:

答案 0 :(得分:2)

如果您在那里检查execution_delta,则表示没有,文档[https://github.com/apache/incubator-airflow/blob/master/airflow/operators/sensors.py#L194]说:

  

:param execution_delta:与之前执行的时差           看一下,默认是与当前任务相同的execution_date。           对于昨天,使用[positive!] datetime.timedelta(days = 1)。或           execution_delta或execution_date_fn可以传递给           ExternalTask​​Sensor,但不是两者。

简短的回答是,由于您在不同的时间运行DAG A和DAG B,您需要放置execution_delta,否则,它假设您的其他DAG同时运行,在这种情况下,没有找到DAG运行并且您可能会出乎意料。所以尝试类似datetime.timedelta(minutes = 30)