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缺失)
这里有多个选项:
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模板。