侦听器¶
您可以编写侦听器,以便在事件发生时让 Airflow 通知您。 Pluggy 为这些侦听器提供支持。
Airflow 支持针对以下事件的通知
生命周期事件¶
on_starting
before_stopping
生命周期事件允许您对 Airflow 作业
(例如 SchedulerJob
或 BackfillJob
)的启动和停止事件做出反应。
DagRun 状态更改事件¶
on_dag_run_running
on_dag_run_success
on_dag_run_failed
当 DagRun
更改状态时,会发生 DagRun 状态更改事件。
TaskInstance 状态更改事件¶
on_task_instance_running
on_task_instance_success
on_task_instance_failed
当 TaskInstance
更改状态时,会发生 TaskInstance 状态更改事件。您可以使用这些事件对 LocalTaskJob
状态更改做出反应。
用法¶
要创建侦听器
导入
airflow.listeners.hookimpl
为要生成通知的事件实现
hookimpls
Airflow 将规范定义为 hookspec。您的实现必须接受 hookspec 中定义的相同命名参数。如果您不使用与 hookspec 相同的参数,则在您尝试使用插件时,Pluggy 会抛出一个错误。但您不必实现每个方法。许多侦听器只实现一个方法或一部分方法。
要将侦听器包含在您的 Airflow 安装中,请将其作为 Airflow 插件 的一部分包含在内。
监听器 API 旨在跨所有 DAG 和所有运算符进行调用。您无法监听由特定 DAG 生成的事件。对于该行为,请尝试使用 on_success_callback
和 pre_execute
等方法。这些方法为特定 DAG 作者或运算符创建者提供回调。日志和 print()
调用将作为监听器的一部分进行处理。