airflow - 气流传感器超时时如何执行某些操作
问题描述
我想在气流传感器超时时调用一个方法。Airflow 库是否提供了一个挂钩来执行此类操作?我查看了源代码,AirflowSensorTimeoutException
一旦发生超时,它就会抛出。
有没有办法捕捉上述异常或 Sensor 提供的某种钩子来处理超时后的某些操作?
解决方案
虽然对于特定类型的异常(在您的情况下 - 超时异常)没有简单的选择,但您可以通过添加另一个执行 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 检查异常是否超时,但这会更复杂。
推荐阅读
- flutter - Flutter Firebase Auth 电话验证短信代码问题
- python - 以 csv 格式保存数据帧后获取双引号
- javascript - 使用回调返回组件
- json - 如何在jmeter中使用JRS223预处理器修改json
- javascript - 从另一个组件重置 BehaviorSubject
- javascript - 如何为 renderToNodeStream (React SSR) 块收集关键 css
- javascript - 如何将 __ob__: Observer 转换为数组?Vue
- java - 目标c中的类和扩展接口
- android - 在 AppCompatActivity 中以编程方式启用后退按钮
- sql-server - SQL Server 2014 中的用户帐户与 IP 地址的映射