airflow.sensors.base

模組內容

類別

PokeReturnValue

用於 poke 方法的可選回傳值。

BaseSensorOperator

感測器操作器衍生自此類別,並繼承這些屬性。

函式

poke_mode_only(cls)

使用 poke 裝飾 BaseSensorOperator 的子類別。

class airflow.sensors.base.PokeReturnValue(is_done, xcom_value=None)[source]

用於 poke 方法的可選回傳值。

感測器可以選擇性地在 poke 方法中回傳 PokeReturnValue 類別的實例。如果感測器完成時提供了 XCom 值,則 XCom 值將透過操作器回傳值推送。 :param is_done: 設定為 true 以指示感測器可以停止 poke。 :param xcom_value: 操作器要回傳的可選 XCOM 值。

__bool__()[source]
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)[source]

基底類別: airflow.models.baseoperator.BaseOperator, airflow.models.skipmixin.SkipMixin

感測器操作器衍生自此類別,並繼承這些屬性。

感測器操作器會在時間間隔內持續執行,並在符合條件時成功,超時則失敗。

參數
  • soft_fail (bool) – 設定為 true 以在失敗時將任務標記為 SKIPPED。與 never_fail 互斥。

  • poke_interval (datetime.timedelta | float) – 每次嘗試之間作業應等待的時間。可以是 timedeltafloat 秒。

  • timeout (datetime.timedelta | float) – 任務超時並失敗前經過的時間。可以是 timedeltafloat 秒。這不應與 BaseOperator 類別的 execution_timeout 混淆。timeout 測量第一次 poke 和目前時間之間經過的時間(考慮到每次 poke 之間的任何重新排程延遲),而 execution_timeout 檢查任務的執行時間(不包含任何重新排程延遲)。如果 modepoke(見下文),則兩者等效(因為感測器永遠不會重新排程),但在 reschedule 模式下則不然。

  • mode (str) – 感測器的運作方式。選項為:{ poke | reschedule },預設為 poke。當設定為 poke 時,感測器在其整個執行時間內佔用一個 worker 插槽,並在 poke 之間休眠。如果感測器的預期執行時間很短或需要短的 poke 間隔,請使用此模式。請注意,在此模式下,感測器將在感測器執行期間保留 worker 插槽和 pool 插槽。當設定為 reschedule 時,如果尚未滿足條件,感測器任務會釋放 worker 插槽,並在稍後重新排程。如果預期滿足條件之前的時間相當長,請使用此模式。poke 間隔應超過一分鐘,以防止排程器負載過重。

  • exponential_backoff (bool) – 允許使用指數退避演算法,在 poke 之間逐步延長等待時間

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

  • silent_fail (bool) – 如果為 true,且 poke 方法引發 AirflowSensorTimeout、AirflowTaskTimeout、AirflowSkipException 和 AirflowFailException 以外的例外,感測器將記錄錯誤並繼續執行。否則,感測器任務將失敗,並且可以根據提供的 retries 參數重試。

  • never_fail (bool) – 如果為 true,且 poke 方法引發例外,感測器將被跳過。與 soft_fail 互斥。

property reschedule[source]

定義重新排程模式感測器。

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

覆寫以衍生此類別。

execute(context)[source]

在建立操作器時衍生。

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 – BaseSensor 類別,以強制方法僅使用 'poke' 模式。

此條目是否有幫助?