气流触发任务仅基于之前的运行状态

mnk*_*mnk 5 airflow airflow-scheduler

有没有办法根据以前的任务运行状态触发下一个任务。场景如下:

  • 任务 1 - m DAG 中的第一个任务
  • 任务 2 - 仅在任务 1 成功时运行任务 2
  • 任务 3 - 仅在任务 3 成功时运行任务 3
  • 任务 4 - 仅在任务 1 运行超过 10 小时(SLA 丢失)时才运行任务 4

在此处输入图片说明

Chr*_*eck 2

您在这里有多种选择:

  1. 使用触发规则,请参阅触发规则了解如何使用它们。
  2. 使用 on_failure_callback 和 on_success_callback 定义任务失败/成功时会发生什么,请参阅这篇文章或 BaseOperator API 参考中的定义(请参阅参数 -> on_failure_callback,on_success_callback)。
  3. 如果您只想在出现故障或 SLA 缺失时发送电子邮件,并且在这种情况下不应执行其他任务,请定义:
    default_args = {'email': ['some_email_adress'],'email_on_failure': True"},airflow 将向定义的电子邮件发送一封包含错误/SLA 缺失的电子邮件。

  • 另外,BranchPythonOperator (2认同)