侦听器

您可以编写侦听器,以便在事件发生时让 Airflow 通知您。 Pluggy 为这些侦听器提供支持。

Airflow 支持针对以下事件的通知

生命周期事件

  • on_starting

  • before_stopping

生命周期事件允许您对 Airflow 作业(例如 SchedulerJobBackfillJob)的启动和停止事件做出反应。

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 状态更改做出反应。

数据集事件

  • on_dataset_created

  • on_dataset_changed

当运行数据集管理操作时,会发生数据集事件。

这是一个 实验性功能

用法

要创建侦听器

  • 导入 airflow.listeners.hookimpl

  • 为要生成通知的事件实现 hookimpls

Airflow 将规范定义为 hookspec。您的实现必须接受 hookspec 中定义的相同命名参数。如果您不使用与 hookspec 相同的参数,则在您尝试使用插件时,Pluggy 会抛出一个错误。但您不必实现每个方法。许多侦听器只实现一个方法或一部分方法。

要将侦听器包含在您的 Airflow 安装中,请将其作为 Airflow 插件 的一部分包含在内。

监听器 API 旨在跨所有 DAG 和所有运算符进行调用。您无法监听由特定 DAG 生成的事件。对于该行为,请尝试使用 on_success_callbackpre_execute 等方法。这些方法为特定 DAG 作者或运算符创建者提供回调。日志和 print() 调用将作为监听器的一部分进行处理。

此条目是否有用?