Airflow 气流:即使交叉相关DAG尚未完成,也会触发DAG运行
我正在使用气流设置相互依赖的DAG。我有一个特殊的用例,其中我的DAG B要求首先运行DAG a,但是,如果DAG a延迟足够长的时间,DAG B仍然应该运行。所以我在寻找一种在两个传感器之间连接OR操作的方法 假设DAG B需要在每天下午5点之前运行,那么我将在代码中这样做:Airflow 气流:即使交叉相关DAG尚未完成,也会触发DAG运行,airflow,Airflow,我正在使用气流设置相互依赖的DAG。我有一个特殊的用例,其中我的DAG B要求首先运行DAG a,但是,如果DAG a延迟足够长的时间,DAG B仍然应该运行。所以我在寻找一种在两个传感器之间连接OR操作的方法 假设DAG B需要在每天下午5点之前运行,那么我将在代码中这样做: while True: CURRENT_TIME = getCurrentTime() if DAG A completed OR CURRENT_TIME > 5pm: run D
while True:
CURRENT_TIME = getCurrentTime()
if DAG A completed OR CURRENT_TIME > 5pm:
run DAG B
这在代码中要简单得多,但是看不到气流是如何实现的。有趣的问题,下面是我认为可以实现的方法
- 在此,您还必须设置,以便传感器在特定的最长时间后发生故障
ExternalTaskSensor
)设置,以确保DAG-B的实际处理开始,而不管DAG-A是否在规定的时间内完成;换句话说
- DAG-B的执行将推迟到DAG-A完成,但仅在最长
持续时间内delta
- 如果DAG-A在此持续时间内完成,则DAG-B将在该持续时间后立即开始执行
- 但如果DAG-A未能在该持续时间内完成,则DAG-B将在该持续时间过后开始执行
有趣的问题是,我认为这是如何实现的
- 在此,您还必须设置,以便传感器在特定的最长时间后发生故障
ExternalTaskSensor
)设置,以确保DAG-B的实际处理开始,而不管DAG-A是否在规定的时间内完成;换句话说
- DAG-B的执行将推迟到DAG-A完成,但仅在最长
持续时间内delta
- 如果DAG-A在此持续时间内完成,则DAG-B将在该持续时间后立即开始执行
- 但如果DAG-A未能在该持续时间内完成,则DAG-B将在该持续时间过后开始执行