Airflow Summit 2025 将于 10 月 07-09 日举行。立即注册以获得早鸟票!

airflow.timetables.events

EventsTimetable

在指定的日期时间列表上调度 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 的长度

event_dates[源代码]
restrict_to_events = False[源代码]
property summary: str[源代码]

时间表的简短摘要。

这用于在 Web UI 中显示时间表。例如,cron 表达式时间表可以使用它来显示表达式。默认实现返回时间表的类型名称。

__repr__()[源代码]
next_dagrun_info(*, last_automated_data_interval, restriction)[源代码]

提供调度下一个 DagRun 的信息。

默认实现会引发 NotImplementedError

参数:
返回:

关于何时可以调度下一个 DagRun 的信息。None 意味着不会发生 DagRun。这并不意味着此 DAG 不会再被调度;在其他时间被查询时,时间表可以返回 DagRunInfo 对象。

返回类型:

airflow.timetables.base.DagRunInfo | None

infer_manual_data_interval(*, run_after)[源代码]

当手动触发 DAG 运行时,为其推断一个数据区间。

这用于例如手动触发的运行,其中 run_after 是用户触发运行的时间。默认实现会引发 NotImplementedError

serialize()[源代码]

将时间表序列化为 JSON 编码。

在 DAG 序列化期间调用此方法,将时间表信息存储到数据库中。它应返回一个可 JSON 序列化的字典,该字典将在 DAG 反序列化时提供给 deserialize。默认实现返回一个空字典。

classmethod deserialize(data)[源代码]

从数据中反序列化时间表。

在反序列化已序列化的 DAG 时调用此方法。data 将是 DAG 序列化期间 serialize 返回的任何内容。默认实现在没有任何参数的情况下构造时间表。

此条目是否有帮助?