airflow.triggers.base
¶
模組內容¶
類別¶
從觸發器啟動任務執行所需的引數。 |
|
所有觸發器的基礎類別。 |
|
觸發器在其條件滿足時可以觸發的事件。 |
|
產生此事件以成功結束任務。 |
|
產生此事件以失敗結束任務。 |
|
產生此事件以 'skipped' 狀態結束任務。 |
屬性¶
- class airflow.triggers.base.StartTriggerArgs[source]¶
從觸發器啟動任務執行所需的引數。
- timeout: datetime.timedelta | None[source]¶
- class airflow.triggers.base.BaseTrigger(**kwargs)[source]¶
Bases:
abc.ABC
,airflow.utils.log.logging_mixin.LoggingMixin
所有觸發器的基礎類別。
觸發器可以存在於兩種情境中
在 Operator 內部,當它傳遞給 TaskDeferred 時
在觸發器 worker 中主動執行
我們在兩種情況下都使用相同的類別,並依賴所有 Trigger 類別都能夠傳回引數(可以使用 Airflow-JSON 編碼),以便它們可以在其他地方重新實例化。
- abstract async run()[source]¶
在非同步環境中執行觸發器。
每當觸發器想要觸發事件時,它應該產生一個 Event,如果完成則傳回 None。因此,單一事件觸發器應產生然後立即傳回。
如果它產生,則很可能很快就會恢復,但可能不會(例如,如果工作負載正在移至另一個觸發器程序,或者多事件觸發器用於單事件任務延遲)。
在任何一種情況下,Trigger 類別都應假設它們將被持久化,然後依賴於在不再需要它們時呼叫 cleanup()。
- class airflow.triggers.base.TriggerEvent(payload)[source]¶
觸發器在其條件滿足時可以觸發的事件。
事件必須具有唯一識別值,該值在觸發器運行的任何地方都相同;這是為了確保如果同一個觸發器在兩個位置(出於 HA 原因)運行,我們可以對其事件進行去重。
- handle_submit(*, task_instance, session=NEW_SESSION)[source]¶
處理給定任務實例的提交事件。
此函數設定任務實例的下一個方法和下一個 kwargs,以及其狀態為排程中。它還將事件的 payload 新增到任務的 kwargs 中。
- 參數
task_instance (airflow.models.TaskInstance) – 要處理提交事件的任務實例。
session (sqlalchemy.orm.Session) – 用於資料庫回呼接收器的 session。
- class airflow.triggers.base.TaskSuccessEvent(*, xcoms=None, **kwargs)[source]¶
Bases:
BaseTaskEndEvent
產生此事件以成功結束任務。