Airflow 气流-如何覆盖默认故障通知方法

Airflow 气流-如何覆盖默认故障通知方法,airflow,Airflow,有人能告诉我是否有一种方法可以覆盖默认的失败通知方法吗。 我计划向SNS发送失败通知,但这意味着我必须更改所有现有的DAG,并向其添加on\u failure\u callback方法 我在想是否有一种方法可以覆盖现有的通知方法,这样我就不需要更改所有的DAG 或者为所有DAG配置全局钩子,这样我就不需要向所有DAG添加失败回调时的。您可以在DAG解析后立即使用它来修改任务 例如,此函数可以在使用特定运算符时应用特定的队列属性,或强制执行任务超时策略,以确保没有任务运行超过48小时。下面是一个示

有人能告诉我是否有一种方法可以覆盖默认的失败通知方法吗。 我计划向SNS发送失败通知,但这意味着我必须更改所有现有的DAG,并向其添加
on\u failure\u callback
方法

我在想是否有一种方法可以覆盖现有的通知方法,这样我就不需要更改所有的DAG

或者为所有DAG配置全局钩子,这样我就不需要向所有DAG添加失败回调时的

您可以在DAG解析后立即使用它来修改任务

例如,此函数可以在使用特定运算符时应用特定的队列属性,或强制执行任务超时策略,以确保没有任务运行超过48小时。下面是一个示例,说明了在airflow_local_settings.py中的情况:

def策略(任务):
如果任务.\uuuuu类.\uuuuu名称.\uuuuu=='HivePartitionSensor':
task.queue=“传感器\队列”
如果task.timeout>timedelta(小时=48):
task.timeout=timedelta(小时=48)
对于Airflow 2.0,此策略应为:

def task_策略(任务):
如果任务.\uuuuu类.\uuuuu名称.\uuuuu=='HivePartitionSensor':
task.queue=“传感器\队列”
如果task.timeout>timedelta(小时=48):
task.timeout=timedelta(小时=48)
policy
功能已重命名为
task\u policy

以类似的方式,您可以修改其他属性,例如执行回调上的
,\u失败回调上的
,\u成功回调上的
,\u重试回调上的


airflow_local_settings.py文件必须位于sys.path中的一个目录中。利用这一点的最简单方法是在启动时将气流传输到sys.path,因此您需要创建一个
~/aw/config/afflow\u local\u settings.py
文件。

谢谢Mik laj。您能告诉我我是否应该修改airflow
airflow\u local\u settings.py
文件(即
/usr/lib/python3.6/dist packages/airflow/config\u templates/airflow\u local\u settings.py
)或创建新的文件吗?如果是,在哪里?我添加了一个新段落。它不起作用检查这个问题。