airflow.providers.standard.sensors.date_time

模块内容

StartTriggerArgs

从触发器启动任务执行所需的参数。

DateTimeSensor

等待直到指定的日期时间。

DateTimeSensorAsync

等待直到指定的日期时间发生。

class airflow.providers.standard.sensors.date_time.StartTriggerArgs[源代码]

从触发器启动任务执行所需的参数。

trigger_cls: str[源代码]
next_method: str[源代码]
trigger_kwargs: dict[str, Any] | None[源代码]
next_kwargs: dict[str, Any] | None[源代码]
timeout: datetime.timedelta | None[源代码]
class airflow.providers.standard.sensors.date_time.DateTimeSensor(*, target_time, **kwargs)[源代码]

基类: airflow.sensors.base.BaseSensorOperator

等待直到指定的日期时间。

此传感器的一个主要优点是 target_time 的幂等性。它处理 TimeSensorTimeDeltaSensor 不适用的某些情况。

示例 1 :

如果一个任务需要在每个 logical_date 的上午 11 点等待。使用 TimeSensorTimeDeltaSensor,所有在上午 1 点启动的回填任务都必须等待 10 个小时。这是不必要的,例如 {{ ds }} = '1970-01-01' 的回填任务不需要等待,因为 1970-01-01T11:00:00 已经过去。

示例 2 :

如果 DAG 计划每天 23:00 运行,但其中一个任务需要在第二天 01:00 运行,使用 TimeSensor 将立即返回 True,因为 23:00 > 01:00。相反,我们可以这样做

DateTimeSensor(
    task_id="wait_for_0100",
    target_time="{{ data_interval_end.tomorrow().replace(hour=1) }}",
)
参数

target_time (str | datetime.datetime) – 作业成功之后的日期时间。(已模版化)

template_fields: collections.abc.Sequence[str] = ('target_time',)[源代码]
poke(context)[源代码]

派生此类时重写。

class airflow.providers.standard.sensors.date_time.DateTimeSensorAsync(*, start_from_trigger=False, end_from_trigger=False, trigger_kwargs=None, **kwargs)[源代码]

基类: DateTimeSensor

等待直到指定的日期时间发生。

将其自身延期以避免在等待时占用工作槽。它是 DateTimeSensor 的直接替代品。

参数
  • target_time – 作业成功之后的日期时间。(已模版化)

  • start_from_trigger (bool) – 直接从触发器启动任务,而无需进入工作节点。

  • trigger_kwargs (dict[str, Any] | None) – 当动态任务映射期间 start_from_trigger 设置为 True 时传递给触发器的关键字参数。此参数在标准用法中不使用。

  • end_from_trigger (bool) – 直接从触发器结束任务,而无需进入工作节点。

start_trigger_args[源代码]
start_from_trigger = False[源代码]
execute(context)[源代码]

在创建操作符时派生。

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

请参阅 get_template_context 以获取更多上下文信息。

execute_complete(context, event=None)[源代码]

当触发器触发时处理事件并立即返回。

此条目是否有帮助?