airflow - 气流触发任务仅基于以前的运行状态
问题描述
有没有办法根据以前的任务运行状态触发下一个任务。场景如下:
- Task1 - m DAG 中的第一个任务
- Task2 - 仅在 task1 成功时运行 task2
- 任务 3 - 仅在任务 3 成功时运行任务 3
- 任务 4 - 仅当任务 1 运行超过 10 小时(错过 SLA)时才运行任务 4
解决方案
您在这里有多种选择:
- 使用触发规则,请参阅触发规则了解如何使用它们。
- 使用 on_failure_callback 和 on_success_callback 来定义如果您的任务失败/成功会发生什么,请参阅这篇文章或 BaseOperator API 参考中的定义(请参阅参数 -> on_failure_callback,on_success_callback)。
- 如果您只想在失败或 SLA 未命中的情况下发送电子邮件,并且在这种情况下不应该执行其他任务,请定义:
default_args = {'email': ['some_email_adress'],'email_on_failure': True"}
,然后气流将发送一封带有错误/SLA 未命中的电子邮件到定义的电子邮件。
推荐阅读
- react-native - 世博会推送通知前台不工作
- mongodb - 使用 Cursor 迁移 DocumentDB (MongoDB)
- django - 如何在具有过期时间的数据库中创建图像的 URL
- logging - GCP ops agent fluentbit 日志级别默认为 info
- vue.js - 获取 Url Vue js(路由器)
- java - K.Syerra B.Beyts 书“Java 初学者学习”第 13 章关于 BeatBox.class 的问题
- regex - 用于替换 Markdown 文档中的文件路径的正则表达式帮助
- python - 如何通过训练参数减少gensim fasttext模型的RAM消耗?
- asp.net-core - Asp.Net Core Identity:GenerateChangePhoneNumberTokenAsync 不创建 AspNetUserTokens 记录
- php - 在 Laravel 中获取没有循环的集合值