airflow.timetables.events¶
类¶
在指定的日期时间列表上调度 DAG 运行的时间表。 |
模块内容¶
- class airflow.timetables.events.EventsTimetable(event_dates, restrict_to_events=False, presorted=False, description=None)[源代码]¶
基类:
airflow.timetables.base.Timetable
在指定的日期时间列表上调度 DAG 运行的时间表。
适用于可预测但确实不规律的调度,例如体育赛事。
- 参数:
event_dates (collections.abc.Iterable[pendulum.DateTime]) – DAG 运行的日期时间列表。重复项将被忽略。必须是有限且大小合理的,因为它将被完全加载。
restrict_to_events (bool) – 手动运行时是否应使用最近的事件日期或当前时间
presorted (bool) – 如果为 True,则假定 event_dates 按升序排列。对于较大的 event_dates 列表,这可以提供适度的性能提升。
description (str | None) – 在 UI 中显示的时间表名称。默认为 None 时,将显示为“X 个事件”,其中 X 是 event_dates 的长度
- 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 对象。
- 返回类型:
- infer_manual_data_interval(*, run_after)[源代码]¶
当手动触发 DAG 运行时,为其推断一个数据区间。
这用于例如手动触发的运行,其中
run_after
是用户触发运行的时间。默认实现会引发NotImplementedError
。