气流传感器超时时如何采取措施

时间:2019-12-06 12:09:37

标签: airflow

我想在气流传感器超时时调用一个方法。 Airflow库是否提供一个挂钩来执行此类操作?我已经研究了源代码,一旦发生超时,它就会抛出AirflowSensorTimeoutException

是否有一种方法可以捕获上述异常或Sensor提供的某种挂钩来执行某些操作后超时?

1 个答案:

答案 0 :(得分:0)

虽然没有简单的方法可以针对特定类型的异常(在您的情况下为超时异常)执行此操作,但是您可以通过添加另一个执行X并向其传递trigger_rule='all_failed'参数的任务来实现这一点,因此仅当父级失败时,此任务才会运行。

例如:

sensor = FileSensor(
    task_id='sensor',
    filepath='/usr/local/airflow/file',
    timeout=10,
    poke_interval=10,
    dag=dag
)

when_failed = BashOperator(
    task_id='creator',
    bash_command='touch /usr/local/airflow/file',
    trigger_rule='all_failed',
    dag=dag
)

sensor >> when_failed

如果只想在超时异常上运行,也可以采用这种方法,将ShortCircuitOperator与trigger_rule一起使用,以检查异常是否超时,但这会更加复杂。