airflow.triggers.base

模块内容

StartTriggerArgs

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

BaseTrigger

所有触发器的基类。

TriggerEvent

触发器在满足其条件时可以触发的东西。

TaskSuccessEvent

产生此事件以成功结束任务。

TaskFailedEvent

产生此事件以失败结束任务。

TaskSkippedEvent

产生此事件以状态“跳过”结束任务。

属性

log

airflow.triggers.base.log[源代码]
class airflow.triggers.base.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.triggers.base.BaseTrigger(**kwargs)[源代码]

基类:abc.ABC, airflow.utils.log.logging_mixin.LoggingMixin

所有触发器的基类。

触发器可以存在于两种上下文中

  • 在操作符内部,当它传递给 TaskDeferred 时

  • 在触发器工作程序中主动运行

我们在两种情况下都使用相同的类,并依赖于所有触发器类来返回参数(可以使用 Airflow-JSON 编码),这些参数将允许它们在其他地方重新实例化。

abstract serialize()[源代码]

返回重建此触发器所需的信息。

返回

(类路径,重新实例化所需的关键字参数) 的元组。

返回类型

tuple[str, dict[str, Any]]

abstract async run()[源代码]

在异步上下文中运行触发器。

每当触发器想要触发事件时,它都应该产生一个事件,如果它已完成,则返回 None。因此,单事件触发器应产生然后立即返回。

如果它产生事件,则很可能会很快恢复,但可能不会(例如,如果工作负载正在移动到另一个触发器进程,或者将多事件触发器用于单事件任务延迟)。

在任何一种情况下,触发器类都应假定它们将被持久化,然后依赖于在不再需要它们时调用 cleanup()。

async cleanup()[源代码]

清理触发器。

当不再需要触发器,并且它正在从活动的触发器进程中删除时调用。

此方法遵循 async/await 模式,以允许在触发器主事件循环中运行清理。清理方法引发的异常将被忽略,因此,如果您希望能够调试它们并被通知清理方法失败,则应使用 try/except 块包装您的代码并以适当的方式处理它(以异步兼容的方式)。

__repr__()[源代码]

返回 repr(self)。

class airflow.triggers.base.TriggerEvent(payload)[源代码]

触发器在满足其条件时可以触发的东西。

事件必须具有唯一的标识值,该值在触发器运行的任何位置都相同;这是为了确保如果在两个位置(出于 HA 原因)运行相同的触发器,我们可以对它的事件进行重复数据删除。

__repr__()[源代码]

返回 repr(self)。

__eq__(other)[source]

返回 self==value。

handle_submit(*, task_instance, session=NEW_SESSION)[source]

处理给定任务实例的提交事件。

此函数设置任务实例的下一个方法和下一个 kwargs,以及其状态为 scheduled。它还将事件的有效负载添加到任务的 kwargs 中。

参数
  • task_instance (airflow.models.TaskInstance) – 要处理提交事件的任务实例。

  • session ( sqlalchemy.orm.Session) – 用于数据库回调接收器的会话。

class airflow.triggers.base.TaskSuccessEvent(*, xcoms=None, **kwargs)[source]

基类: BaseTaskEndEvent

产生此事件以成功结束任务。

task_instance_state[source]
class airflow.triggers.base.TaskFailedEvent(*, xcoms=None, **kwargs)[source]

基类: BaseTaskEndEvent

产生此事件以失败结束任务。

task_instance_state[source]
class airflow.triggers.base.TaskSkippedEvent(*, xcoms=None, **kwargs)[source]

基类: BaseTaskEndEvent

产生此事件以结束状态为“跳过”的任务。

task_instance_state[source]

此条目是否对您有所帮助?