airflow.timetables.events

模組內容

類別

EventsTimetable

在特定列出的日期時間排程 DAG 執行的時間表。

class airflow.timetables.events.EventsTimetable(event_dates, restrict_to_events=False, presorted=False, description=None)[source]

基礎: airflow.timetables.base.Timetable

在特定列出的日期時間排程 DAG 執行的時間表。

適用於可預測但真正不規則的排程,例如體育賽事。

參數
  • event_dates (Iterable[pendulum.DateTime]) – DAG 運行的日期時間列表。重複項將被忽略。必須是有限且合理的大小,因為它將完整載入。

  • restrict_to_events (bool) – 手動執行是否應使用最近的事件或目前時間

  • presorted (bool) – 如果為 True,則 event_dates 將被假定為升序。為較大的 event_dates 列表提供適度的效能改進。

  • description (str | None) – 要在 UI 中顯示的時間表名稱。預設值 None 將顯示為 “X Events”,其中 X 是 event_dates 的長度

property summary: str[source]

時間表的簡短摘要。

這用於在 Web UI 中顯示時間表。例如,cron 表達式時間表可以使用它來顯示表達式。預設實作傳回時間表的類型名稱。

__repr__()[source]

傳回 repr(self)。

next_dagrun_info(*, last_automated_data_interval, restriction)[source]

提供排程下一個 DagRun 的資訊。

預設實作引發 NotImplementedError

參數
傳回

有關何時可以排程下一個 DagRun 的資訊。None 表示 DagRun 不會發生。這並不表示此 DAG 甚至永遠不會排程更多執行;時間表可以在另一個時間被詢問時傳回 DagRunInfo 物件。

傳回類型

airflow.timetables.base.DagRunInfo | None

infer_manual_data_interval(*, run_after)[source]

當手動觸發 DAG 執行時,推斷其資料間隔。

這用於例如手動觸發的執行,其中 run_after 將是用戶觸發執行時的時間。預設實作引發 NotImplementedError

serialize()[source]

序列化時間表以進行 JSON 編碼。

這在 DAG 序列化期間呼叫,以將時間表資訊儲存在資料庫中。這應該傳回 JSON 可序列化的 dict,該 dict 將在 DAG 還原序列化時饋送到 deserialize。預設實作傳回空 dict。

classmethod deserialize(data)[source]

從資料還原序列化時間表。

這在還原序列化序列化 DAG 時呼叫。data 將是 DAG 序列化期間 serialize 傳回的任何內容。預設實作建構不帶任何引數的時間表。

此條目是否有幫助?