airflow.timetables.assets¶
类¶
结合基于时间的调度和基于事件的调度。 |
模块内容¶
- class airflow.timetables.assets.AssetOrTimeSchedule(*, timetable, assets)[源代码]¶
基类:
airflow.timetables.simple.AssetTriggeredTimetable
结合基于时间的调度和基于事件的调度。
- description = 'Triggered by assets or Uninferable'[源代码]¶
时间表的人类可读描述。
例如,这可以从 cron 表达式
'30 21 * * 5'
中生成类似'周五 21:30 执行'
的内容。这用于 webserver UI 中。
- can_be_scheduled[源代码]¶
此时间表是否能够以自动化方式实际调度运行。
默认情况下通常应为 True(包括非周期性执行类型,如 @once 和由数据触发的时间表),但
NullTimetable
会将其设置为 False。
- active_runs_limit[源代码]¶
一个 DAG 同时可以拥有的最大活跃运行数。
这在 DAG 初始化期间调用,返回值用作 DAG 默认的
max_active_runs
。通常应返回 None,但在某些情况下(例如对于ContinuousTimetable
),限制 DAG 运行并行性是有充分理由的。
- classmethod deserialize(data)[源代码]¶
从数据反序列化时间表。
这在序列化的 DAG 被反序列化时调用。
data
将是 DAG 序列化期间由serialize
返回的任何内容。默认实现会在没有任何参数的情况下构造时间表。
- serialize()[源代码]¶
序列化时间表以便进行 JSON 编码。
这在 DAG 序列化期间调用,用于将时间表信息存储在数据库中。这应该返回一个可 JSON 序列化的字典,该字典将在 DAG 反序列化时传入
deserialize
。默认实现返回一个空字典。
- validate()[源代码]¶
验证时间表是否正确指定。
重写此方法以提供在将 DAG 放入 dagbag 时引发的运行时验证。默认实现不执行任何操作。
- 引发:
验证失败时引发 AirflowTimetableInvalid。
- 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 对象。
- 返回类型: