Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Airflow 气流触发任务仅基于以前的运行状态_Airflow_Airflow Scheduler - Fatal编程技术网

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

Airflow 气流触发任务仅基于以前的运行状态,airflow,airflow-scheduler,Airflow,Airflow Scheduler,是否有方法根据以前的任务运行状态触发下一个任务。情景如下: Task1-m DAG中的第一个任务 Task2-仅当task1成功时才运行Task2 Task3-仅当Task3成功时才运行Task3 Task4-仅当task1运行超过10小时时才运行Task4(SLA缺失) 这里有多个选项: 使用触发器规则,请参见关于如何使用它们的说明 使用on_failure_callback和on_success_callback定义任务失败/成功时会发生什么,请参阅或BaseOperator中的定义(请

是否有方法根据以前的任务运行状态触发下一个任务。情景如下:

  • Task1-m DAG中的第一个任务
  • Task2-仅当task1成功时才运行Task2
  • Task3-仅当Task3成功时才运行Task3
  • Task4-仅当task1运行超过10小时时才运行Task4(SLA缺失)

这里有多个选项:

  • 使用触发器规则,请参见关于如何使用它们的说明
  • 使用on_failure_callback和on_success_callback定义任务失败/成功时会发生什么,请参阅或BaseOperator中的定义(请参阅参数->on_failure_callback,on_success_callback)
  • 如果您只希望在出现故障或SLA未命中时发送电子邮件,并且在这种情况下不应执行其他任务,请定义:
    default_args={'email':['some_email_address'],'email_on_failure':True“}
    ,airflow随后将向定义的电子邮件发送一封带有错误/sla未命中的电子邮件

  • 另外,BranchPythonOperatorHanks Chris。我没有提到我正在尝试发送松弛消息而不是电子邮件。我应该能够动态地将此消息作为“任务成功”、“任务失败”和“任务运行(未满足sla)”发送" . 如何捕获task1的这三种状态?默认失败和成功的最简单设置是task1下游的两个松弛操作符,一个使用trigger_rule='all_success',另一个使用'all_failed'。现在我从来没有使用过SLA,所以我不知道任务是否失败,如果它没有使用SLA,或者如果airflow只发送了一封电子邮件。如果它失败了,那么您必须弄清楚如果失败是由SLA未命中引起的,那么如何获取信息。如果SLA丢失时任务失败,并且您知道如何从task_实例获取该信息,那么您可能可以在failure slack operator消息中使用jinja模板。