airflow.sensors.base
¶
模組內容¶
類別¶
用於 poke 方法的可選回傳值。 |
|
感測器操作器衍生自此類別,並繼承這些屬性。 |
函式¶
|
使用 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 值。
- 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) – 每次嘗試之間作業應等待的時間。可以是
timedelta
或float
秒。timeout (datetime.timedelta | float) – 任務超時並失敗前經過的時間。可以是
timedelta
或float
秒。這不應與BaseOperator
類別的execution_timeout
混淆。timeout
測量第一次 poke 和目前時間之間經過的時間(考慮到每次 poke 之間的任何重新排程延遲),而execution_timeout
檢查任務的執行時間(不包含任何重新排程延遲)。如果mode
為poke
(見下文),則兩者等效(因為感測器永遠不會重新排程),但在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 之間的最大等待間隔,可以是
timedelta
或float
秒silent_fail (bool) – 如果為 true,且 poke 方法引發 AirflowSensorTimeout、AirflowTaskTimeout、AirflowSkipException 和 AirflowFailException 以外的例外,感測器將記錄錯誤並繼續執行。否則,感測器任務將失敗,並且可以根據提供的 retries 參數重試。
never_fail (bool) – 如果為 true,且 poke 方法引發例外,感測器將被跳過。與 soft_fail 互斥。