airflow.sensors.base

模块内容

PokeReturnValue

用于 poke 方法的可选返回值。

BaseSensorOperator

传感器操作符派生自此类并继承这些属性。

函数

poke_mode_only(cls)

使用 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 值。

__bool__()[源代码]
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) – 作业在每次尝试之间应等待的时间。可以是 timedeltafloat 秒。

  • timeout (datetime.timedelta | float) – 任务超时并失败之前经过的时间。可以是 timedeltafloat 秒。这不应与 BaseOperator 类的 execution_timeout 混淆。timeout 衡量第一次轮询和当前时间之间经过的时间(考虑到每次轮询之间的任何重新调度延迟),而 execution_timeout 检查任务的运行时间(不包括任何重新调度延迟)。如果 modepoke(见下文),则两者等效(因为传感器永远不会被重新调度),但在 reschedule 模式下则不然。

  • mode (str) – 传感器运行方式。选项为:{ poke | reschedule },默认为 poke。当设置为 poke 时,传感器在其整个执行时间内占用一个工作进程槽并在轮询之间休眠。如果传感器的预期运行时间较短或需要较短的轮询间隔,请使用此模式。请注意,在这种模式下,传感器将在传感器运行期间保留一个工作进程槽和一个池槽。当设置为 reschedule 时,如果尚未满足条件,传感器任务将释放工作进程槽,并在稍后的时间重新调度。如果满足条件之前的时间预计会很长,请使用此模式。轮询间隔应大于一分钟,以防止调度程序上的负载过大。

  • exponential_backoff (bool) – 允许使用指数退避算法在轮询之间逐渐延长等待时间

  • max_wait (datetime.timedelta | float | None) – 轮询之间的最大等待间隔,可以是 timedeltafloat

  • silent_fail (bool) – 如果为 true,并且 poke 方法引发了 AirflowSensorTimeout、AirflowTaskTimeout、AirflowSkipException 和 AirflowFailException 之外的异常,则传感器将记录错误并继续执行。否则,传感器任务将失败,并且可以根据提供的 retries 参数重试。

  • never_fail (bool) – 如果为 true,并且 poke 方法引发异常,则将跳过传感器。与 soft_fail 互斥。

property reschedule[源代码]

定义重新调度的传感器模式。

ui_color: str = '#e6f1f2'[源代码]
valid_modes: Iterable[str] = ['poke', 'reschedule'][源代码]
deps[源代码]
poke(context)[源代码]

派生此类时覆盖。

execute(context)[源代码]

创建操作符时派生。

上下文与渲染 jinja 模板时使用的字典相同。

有关更多上下文,请参阅 get_template_context。

resume_execution(next_method, next_kwargs, context)[source]

当延迟的任务恢复时,调用此方法。

prepare_for_execution()[source]

锁定任务以执行,从而禁用 __setattr__ 中的自定义操作,并返回一个副本。

classmethod get_serialized_fields()[source]

字符串化的 DAG 和操作符包含以下这些字段。

airflow.sensors.base.poke_mode_only(cls)[source]

使用 poke 修饰 BaseSensorOperator 的子类。

指示此类的实例仅在 poke 模式下使用是安全的。

将修饰类中的所有方法,以断言它们没有将模式从“poke”更改。

参数

cls – 要强制方法仅使用“poke”模式的 BaseSensor 类。

此条目是否有帮助?