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 (Iterable[pendulum.DateTime]) – DAG 运行的日期时间列表。重复项将被忽略。必须是有限的且大小合理,因为它将被完整加载。

  • restrict_to_events (bool) – 手动运行应使用最近的事件还是当前时间

  • presorted (bool) – 如果为 True,则假设 event_dates 按升序排列。为较大的 event_dates 列表提供适度的性能改进。

  • description (str | None) – 要在 UI 中显示的时间表名称。默认值 None 将显示为“X 个事件”,其中 X 是 event_dates 的长度

property summary: str[源代码]

时间表的简短摘要。

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

__repr__()[源代码]

返回 repr(self)。

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 返回的任何内容。默认实现构造时间表,不带任何参数。

此条目是否有帮助?