airflow.sensors.base
¶
模块内容¶
类¶
用于 poke 方法的可选返回值。 |
|
传感器操作符派生自此类并继承这些属性。 |
函数¶
|
使用 poke 修饰 BaseSensorOperator 的子类。 |
- class airflow.sensors.base.PokeReturnValue(is_done, xcom_value=None)[源代码]¶
用于 poke 方法的可选返回值。
传感器可以选择在 poke 方法中返回 PokeReturnValue 类的实例。如果在传感器完成时提供了 XCom 值,则 XCom 值将通过操作符返回值推送。:param is_done: 设置为 true 以指示传感器可以停止轮询。:param xcom_value: 操作符返回的可选 XCOM 值。
- class airflow.sensors.base.BaseSensorOperator(*, poke_interval=60, timeout=conf.getfloat('sensors', 'default_timeout'), soft_fail=False, mode='poke', exponential_backoff=False, max_wait=None, silent_fail=False, never_fail=False, **kwargs)[源代码]¶
基类:
airflow.models.baseoperator.BaseOperator
,airflow.models.skipmixin.SkipMixin
传感器操作符派生自此类并继承这些属性。
传感器操作符按时间间隔持续执行,并在满足条件时成功,并在超时时失败。
- 参数
soft_fail (bool) – 设置为 true 以在失败时将任务标记为跳过。与 never_fail 互斥。
poke_interval (datetime.timedelta | float) – 作业在每次尝试之间应等待的时间。可以是
timedelta
或float
秒。timeout (datetime.timedelta | float) – 任务超时并失败之前经过的时间。可以是
timedelta
或float
秒。这不应与BaseOperator
类的execution_timeout
混淆。timeout
衡量第一次轮询和当前时间之间经过的时间(考虑到每次轮询之间的任何重新调度延迟),而execution_timeout
检查任务的运行时间(不包括任何重新调度延迟)。如果mode
是poke
(见下文),则两者等效(因为传感器永远不会被重新调度),但在reschedule
模式下则不然。mode (str) – 传感器运行方式。选项为:
{ poke | reschedule }
,默认为poke
。当设置为poke
时,传感器在其整个执行时间内占用一个工作进程槽并在轮询之间休眠。如果传感器的预期运行时间较短或需要较短的轮询间隔,请使用此模式。请注意,在这种模式下,传感器将在传感器运行期间保留一个工作进程槽和一个池槽。当设置为reschedule
时,如果尚未满足条件,传感器任务将释放工作进程槽,并在稍后的时间重新调度。如果满足条件之前的时间预计会很长,请使用此模式。轮询间隔应大于一分钟,以防止调度程序上的负载过大。exponential_backoff (bool) – 允许使用指数退避算法在轮询之间逐渐延长等待时间
max_wait (datetime.timedelta | float | None) – 轮询之间的最大等待间隔,可以是
timedelta
或float
秒silent_fail (bool) – 如果为 true,并且 poke 方法引发了 AirflowSensorTimeout、AirflowTaskTimeout、AirflowSkipException 和 AirflowFailException 之外的异常,则传感器将记录错误并继续执行。否则,传感器任务将失败,并且可以根据提供的 retries 参数重试。
never_fail (bool) – 如果为 true,并且 poke 方法引发异常,则将跳过传感器。与 soft_fail 互斥。