airflow.timetables.trigger
¶
模組內容¶
類別¶
根據 cron 表達式觸發 DAG 運行時間表。 |
- class airflow.timetables.trigger.CronTriggerTimetable(cron, *, timezone, interval=datetime.timedelta())[原始碼]¶
基底類別:
airflow.timetables._cron.CronMixin
,airflow.timetables.base.Timetable
根據 cron 表達式觸發 DAG 運行時間表。
這與
CronDataIntervalTimetable
不同,後者 cron 表達式指定 DAG 運行的資料間隔。使用此時間表,資料間隔與 cron 表達式獨立指定。同樣基於相同原因,此時間表會在期間開始時立即啟動 DAG 運行(類似於 POSIX cron),而不是需要等待一個資料間隔過去。請勿在此處傳遞
@once
;請改用OnceTimetable
。- classmethod deserialize(data)[原始碼]¶
從資料反序列化時間表。
當反序列化序列化的 DAG 時,會呼叫此方法。
data
將會是 DAG 序列化期間serialize
所傳回的任何內容。預設實作會建構不帶任何引數的時間表。
- serialize()[原始碼]¶
序列化時間表以進行 JSON 編碼。
在 DAG 序列化期間會呼叫此方法,以將時間表資訊儲存在資料庫中。這應傳回 JSON 可序列化的 dict,該 dict 將在反序列化 DAG 時饋送到
deserialize
中。預設實作會傳回空的 dict。
- infer_manual_data_interval(*, run_after)[原始碼]¶
當手動觸發 DAG 運行時,為其推斷資料間隔。
這用於例如手動觸發的運行,其中
run_after
將會是使用者觸發運行時的時間。預設實作會引發NotImplementedError
。
- next_dagrun_info(*, last_automated_data_interval, restriction)[原始碼]¶
提供資訊以排程下一個 DagRun。
預設實作會引發
NotImplementedError
。- 參數
last_automated_data_interval (airflow.timetables.base.DataInterval | None) – 相關聯 DAG 的上次排程或回填運行的資料間隔(不考慮手動運行)。
restriction (airflow.timetables.base.TimeRestriction) – 排程 DAG 運行時套用的限制。請參閱
TimeRestriction
文件以取得詳細資訊。
- 返回
關於何時可以排程下一個 DagRun 的資訊。 None 表示 DagRun 將不會發生。這並不表示即使再次針對此 DAG 也不會排程更多運行;時間表可以在另一個時間被詢問時傳回 DagRunInfo 物件。
- 返回類型