【问题标题】:Airflow cross dag dependency气流交叉 dag 依赖
【发布时间】:2020-12-01 06:06:48
【问题描述】:

我正在尝试实现两个 dag 之间的依赖关系:parent_dag 和 child_dag。 parent dag 有两个虚拟任务:leave_work、cook_dinner child dag 有三个任务:wait_for_dinner、have_dinner、play_with_food

wait_for_dinner 使用 external_task_sensor,external_dag_id 作为 parent_dag,external_task_id 作为 cook_dinner。 两个 dag 的 start_date 和 schedule_interval 相同。

当 parent_dag 完成时,wait_for_dinner 应该成功退出并且下一个任务应该运行,但在我的情况下它没有发生。 (如果 dag 没有被调度,它工作正常,即 schedule_interval = @once)如果 dag 被调度,那么 wait_for_dinner 永远处于运行状态。它没有在监听 parent_dag 成功。

请帮我解决这个问题。

代码 sn-ps:

parent_dag:

dag = DAG(
    'Parent_dag', 
    default_args=default_args, 
    start_date = convert_to_utc(1606712300), 
    schedule_interval=datetime.timedelta(minutes = 5),
    is_paused_upon_creation = False,
    catchup = False
    )

leave_work = DummyOperator(
    task_id='leave_work',
    dag=dag,
)
cook_dinner = DummyOperator(
    task_id='cook_dinner',
    dag=dag,
)

leave_work >> cook_dinner

child_dag:

dag = DAG(
    'Child_dag', 
    default_args=default_args,
    start_date = convert_to_utc(1606712300), 
    schedule_interval=datetime.timedelta(minutes=5),
    is_paused_upon_creation = False,
    catchup = False
    )

wait_for_dinner = ExternalTaskSensor(
    task_id='wait_for_dinner',
    external_dag_id='Parent_dag',
    external_task_id='cook_dinner',
    mode = "reschedule",
    timeout = 3600,
    dag = dag
)

have_dinner = DummyOperator(
    task_id='have_dinner',
    dag=dag,
)
play_with_food = DummyOperator(
    task_id='play_with_food',
    dag=dag,
)

wait_for_dinner >> have_dinner
wait_for_dinner >> play_with_food

【问题讨论】:

  • 您可以尝试将追赶设置为 True 吗?我怀疑他们从来没有相同的执行日期

标签: python airflow


【解决方案1】:

当我想从另一个开始时,我在父级中使用TriggerDagRunOperator,而不是在子级中使用ExternalTaskSensorTriggerDagRunOperator 更可靠。

【讨论】:

    【解决方案2】:

    看看Airflow 2.0中新版本的TriggerDagRunOperator,比以前简单多了。
    在这里查看我的视频https://youtu.be/8uKW0mPWmCk

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 2015-11-29
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多