airflow.triggers.base
¶
模块内容¶
类¶
从触发器启动任务执行所需的参数。 |
|
所有触发器的基类。 |
|
触发器在满足其条件时可以触发的东西。 |
|
产生此事件以成功结束任务。 |
|
产生此事件以失败结束任务。 |
|
产生此事件以状态“跳过”结束任务。 |
属性¶
- class airflow.triggers.base.StartTriggerArgs[源代码]¶
从触发器启动任务执行所需的参数。
- timeout: datetime.timedelta | None[源代码]¶
- class airflow.triggers.base.BaseTrigger(**kwargs)[源代码]¶
基类:
abc.ABC
,airflow.utils.log.logging_mixin.LoggingMixin
所有触发器的基类。
触发器可以存在于两种上下文中
在操作符内部,当它传递给 TaskDeferred 时
在触发器工作程序中主动运行
我们在两种情况下都使用相同的类,并依赖于所有触发器类来返回参数(可以使用 Airflow-JSON 编码),这些参数将允许它们在其他地方重新实例化。
- abstract async run()[源代码]¶
在异步上下文中运行触发器。
每当触发器想要触发事件时,它都应该产生一个事件,如果它已完成,则返回 None。因此,单事件触发器应产生然后立即返回。
如果它产生事件,则很可能会很快恢复,但可能不会(例如,如果工作负载正在移动到另一个触发器进程,或者将多事件触发器用于单事件任务延迟)。
在任何一种情况下,触发器类都应假定它们将被持久化,然后依赖于在不再需要它们时调用 cleanup()。
- class airflow.triggers.base.TriggerEvent(payload)[源代码]¶
触发器在满足其条件时可以触发的东西。
事件必须具有唯一的标识值,该值在触发器运行的任何位置都相同;这是为了确保如果在两个位置(出于 HA 原因)运行相同的触发器,我们可以对它的事件进行重复数据删除。
- 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
产生此事件以成功结束任务。