airflow.timetables.events
Classes
Timetable that schedules DAG runs at specific listed datetimes. |
Module Contents
- class airflow.timetables.events.EventsTimetable(event_dates, restrict_to_events=False, presorted=False, description=None)[source]
Bases:
airflow.timetables.base.TimetableTimetable that schedules DAG runs at specific listed datetimes.
Suitable for predictable but truly irregular scheduling such as sporting events.
- Parameters:
event_dates (collections.abc.Iterable[pendulum.DateTime]) – List of datetimes for the DAG to run at. Duplicates will be ignored. Must be finite and of reasonable size as it will be loaded in its entirety.
restrict_to_events (bool) – Whether manual runs should use the most recent event or the current time
presorted (bool) – if True, event_dates will be assumed to be in ascending order. Provides modest performance improvement for larger lists of event_dates.
description (str | None) – A name for the timetable to display in the UI. Default None will be shown as “X Events” where X is the len of event_dates
- event_dates[source]
- restrict_to_events = False[source]
- property summary: str[source]
A short summary for the timetable.
This is used to display the timetable in the web UI. A cron expression timetable, for example, can use this to display the expression. The default implementation returns the timetable’s type name.
- __repr__()[source]
- next_dagrun_info(*, last_automated_data_interval, restriction)[source]
Provide information to schedule the next DagRun.
The default implementation raises
NotImplementedError.- Parameters:
last_automated_data_interval (airflow.timetables.base.DataInterval | None) – The data interval of the associated DAG’s last scheduled or backfilled run (manual runs not considered).
restriction (airflow.timetables.base.TimeRestriction) – Restriction to apply when scheduling the DAG run. See documentation of
TimeRestrictionfor details.
- Returns:
Information on when the next DagRun can be scheduled. None means a DagRun will not happen. This does not mean no more runs will be scheduled even again for this DAG; the timetable can return a DagRunInfo object when asked at another time.
- Return type:
- infer_manual_data_interval(*, run_after)[source]
When a DAG run is manually triggered, infer a data interval for it.
This is used for e.g. manually-triggered runs, where
run_afterwould be when the user triggers the run. The default implementation raisesNotImplementedError.
- serialize()[source]
Serialize the timetable for JSON encoding.
This is called during DAG serialization to store timetable information in the database. This should return a JSON-serializable dict that will be fed into
deserializewhen the DAG is deserialized. The default implementation returns an empty dict.
- classmethod deserialize(data)[source]
Deserialize a timetable from data.
This is called when a serialized DAG is deserialized.
datawill be whatever was returned byserializeduring DAG serialization. The default implementation constructs the timetable without any arguments.