Airflow 中的trigger_rule

2024-06-18 22:28
文章标签 rule airflow trigger

本文主要是介绍Airflow 中的trigger_rule,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近正在使用airflow,用到了这个,记录下

在 Apache Airflow 中,trigger_rule 是用于控制任务何时被触发的规则。TriggerRule 是一个枚举类型,它包含了多种不同的触发规则。以下是这些规则及其用途的详细说明:

  1. ALL_SUCCESS(默认就是它)
     描述: 只有当所有上游任务都成功时,当前任务才会被触发。
     用途: 用于确保当前任务只在所有前置条件都满足的情况下执行。
  2. ALL_FAILED 
    描述: 只有当所有上游任务都失败时,当前任务才会被触发。
    用途: 用于在所有上游任务失败后执行某些补救操作或通知。
  3. ALL_DONE
    描述: 当所有上游任务都完成时,无论它们是成功、失败还是被跳过,当前任务都会被触发。
    用途: 用于在所有上游任务失败后执行某些补救操作或通知。
  4. ONE_SUCCESS
    描述: 只要有一个上游任务成功,当前任务就会被触发。
    用途: 用于只要有一个前置条件满足就执行当前任务的情况。
  5. ONE_FAILED
    描述: 只要有一个上游任务失败,当前任务就会被触发。
    用途: 用于只要有一个前置条件不满足就执行某些补救操作或通知。
  6. NONE_FAILED
    描述: 只有当所有上游任务都没有失败时,当前任务才会被触发(即上游任务要么成功要么被跳过)。
    用途: 用于确保当前任务在没有失败任务的情况下执行。
  7. NONE_FAILED_MIN_ONE_SUCCESS
    描述: 只有当所有上游任务都没有失败且至少有一个上游任务成功时,当前任务才会被触发。
    用途: 用于确保当前任务在没有失败任务且至少有一个成功任务的情况下执行。
  8. DUMMY
    描述: 当前任务会被立即触发,不考虑上游任务的状态。
    用途: 用于测试和调试目的,或用于在开发过程中快速验证 DAG 的部分流程。

具体就是在定义Operator用到,例子如下:

update_transaction_for_error_task = PythonOperator(task_id='update_transaction_for_error',provide_context=True,python_callable=update_transaction_for_error,trigger_rule=TriggerRule.ONE_SUCCESS,dag=dag,
)    

注意!!!!!

trigger_rule的优先级非常高,就算dag顺序里面定义的路径应该走它但是trigger_rule没有满足,依然不会走,顺序里面不该走它,trigger_rule满足了他就会触发,我已经遇到几次这种错误导致我焦头烂额了


 


 


 


 

这篇关于Airflow 中的trigger_rule的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073232

相关文章

Airflow 核心原理分析

1. airflow架构 scheduler,它处理触发计划的工作流,并将任务提交给executor运行。 executor,处理正在运行的任务。在默认的 Airflow 安装中,它运行在scheduler中,但大多数适合生产的executor实际上将任务执行推送给workers。 webserver,它提供了一个方便的用户界面来检查、触发和调试 DAG 和任务的行为。 DAG Di

python 实现simpson rule辛普森法则算法

simpson rule辛普森法则算法介绍 辛普森法则(Simpson’s rule)是一种数值积分方法,用于估计函数在给定区间上的定积分。该方法利用二次函数来逼近被积函数,从而得到更准确的积分估计。 辛普森法则的算法通常将积分区间[a,b]划分成n个小区间(n为偶数),每个小区间的长度为h=(b−a)/n。然后,它使用三个点(区间开始、中间和结束)的函数值来近似每个小区间上的积分,并累加这些

Linux报错:make[2]: *** No rule to make target ‘/usr/local/lib/libopus.a‘

解决方案: 1、下载libopus。地址:https://www.opus-codec.org/ 2、切换到下载路径,解压压缩包。命令: tar -xzf opus* 3、使用cd命令,进入解压后的文件夹。 4、生成Makefile,并使能静态编译。命令: ./configure --enable-static 5、编译Opus。命令: make 6、安装Opus,包括静态库。

【zabbix教程六】——自定义item和trigger当内存不足10%时触发报警

引言   本文结合配置内存不足10%触发报警的需求,顺便给大家介绍我们怎样自定义item和trigger,在前几篇博客中使用了zabbix给我们提供的模板,里面都已经配置好了item和trigger。但是给我们的模板是当内存小于20M的时候才会触发报警,这样不能满足我们的需求,我们需要在内存不足10%的时候触发,这时候需要我们自定义一个item和trigger。  1、在Template

oracle 触发器trigger 批量执行创建

1.oracle触发器批量执行创建 批量执行创建触发器时,只有当触发器后面加上“/”才可以执行下一个 例如create or replace trigger t_mould_trig before insert on t_mould --数据库表名 for each row declare begin select t_mould_seq.nextval into :new.ID from dua

airflow调度时间详解

⭐️ airflow调度概述 Apache Airflow 是一个开源的工作流调度和监控平台,广泛用于数据工程、ETL(提取、转换、加载)管道以及各种自动化任务。下面我将详细说明 Airflow 的调度算法。 1. DAG(有向无环图) Airflow 的核心是 DAG(Directed Acyclic Graph),它定义了一组有序的任务,其中每个任务称为一个 “task”。DAG 是调度

NIOS Eclipse突然报错:No rule to make target `/system.h

NIOS Eclipse突然报错:No rule to make target `/system.h 今天打开NIOS Eclipse编译昨天完好的工程,发现报错。我就纳闷了,代码没有修改,编译结果报错 控制台中problems选线中显示: No rule to make target `/system.h 控制台中的console选项中显示: **** Build of config

vue3 validator的 rule ,value,callback的ts类型定义

vue3 validator的 rule ,value,callback的ts类型定义 每个函数接收一个value(任何类型的值)和一个callback(一个接收可选error字符串的函数)。 如果value不满足规则,callback被调用并传入一个错误信息,否则,没有错误信息传递表示验证通过。 (rule: any, value: any, callback:any) 在实际的Vue

Trigger函数

1、abschange:直接忽略后边的参数。支持类型:float int str text log.描述:返回最近获取到的值与之前值的差值的绝对值。例如:{server:vfs.fs.size[/,free].abschange(10m)}<10 2、avg:秒或#num。支持类型:float和int.描述:返回指定时间间隔的平均值。例如:{server:vfs.fs.size[/,free].a

MySQL——触发器(trigger)基本结构

1、修改分隔符符号 delimiter $$ $$可以修改 2、创建触发器函数名称 create trigger 函数名  3、什么样在操作触发,操作哪个表 after :……之后触发  before :……之后触发  insert :……之后触发  update :……之后触发  delete :……之后触发  on 表名 实例 after insert on use