我想在气流传感器超时时调用一个方法。 Airflow库是否提供一个挂钩来执行此类操作?我已经研究了源代码,一旦发生超时,它就会抛出AirflowSensorTimeoutException
。
是否有一种方法可以捕获上述异常或Sensor提供的某种挂钩来执行某些操作后超时?
答案 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一起使用,以检查异常是否超时,但这会更加复杂。