Airflow 气流任务是否可以发送上游失败的错误电子邮件通知?
我正在使用airflow计划一些任务,当上游任务失败时,我需要下游任务发送错误电子邮件通知。我使用下面的示例进行测试Airflow 气流任务是否可以发送上游失败的错误电子邮件通知?,airflow,Airflow,我正在使用airflow计划一些任务,当上游任务失败时,我需要下游任务发送错误电子邮件通知。我使用下面的示例进行测试 dag_alert_task_callback = DAG( 'dag_alert_task_callback', default_args=default_args, schedule_interval=None ) t1 = PostgresOperator(task_id='create_schema',
dag_alert_task_callback = DAG(
'dag_alert_task_callback',
default_args=default_args,
schedule_interval=None
)
t1 = PostgresOperator(task_id='create_schema',
sql="CREATE SCHEMA IF NOT EXISTS dbt_raw_data;",
postgres_conn_id='dbt_postgres_instance_raw_data',
autocommit=True,
database="dbtdb",
dag=dag_alert_task_callback)
t2 = PostgresOperator(task_id='drop_table_aisles',
sql="DROP TABLE IF EXISTS aisles;",
postgres_conn_id='dbt_postgres_instance_raw_data',
autocommit=True,
database="dbtdb",
dag=dag_alert_task_callback)
t5 = PostgresOperator(task_id='drop_table_test',
sql="DROP TABLE TEST;",
postgres_conn_id='dbt_postgres_instance_raw_data',
autocommit=True,
database="dbtdb",
dag=dag_alert_task_callback)
t3 = PostgresOperator(task_id='create_aisles',
sql="create table if not exists dbt_raw_data.aisles (aisle_id integer, aisle varchar(100) );",
postgres_conn_id='dbt_postgres_instance_raw_data',
autocommit=True,
database="dbtdb",
dag=dag_alert_task_callback,
email_on_failure=True)
t4 = PostgresOperator(task_id='load_aisles',
sql="COPY dbt_raw_data.aisles FROM '/sample_data/aisles.csv' DELIMITER ',' CSV HEADER;",
postgres_conn_id='dbt_postgres_instance_raw_data',
autocommit=True,
database="dbtdb",
dag=dag_alert_task_callback)
t1 >> [t2, t5] >> t3 >> t4
dag图形视图如下所示
[dag执行图形视图]
[1]:
我测试运行dag并在t5中删除名为test的表,但当t5失败时,下游任务t3无法发送错误通知电子邮件,也无法满足我的需要。您必须为每个任务定义on_failure_回调,以便在任务失败时执行此代码: