airflow.timetables.events
¶
Module Contents¶
Classes¶
Timetable that schedules DAG runs at specific listed datetimes. Suitable for |
- class airflow.timetables.events.EventsTimetable(event_dates, restrict_to_events=False, presorted=False, description=None)[source]¶
Bases:
airflow.timetables.base.Timetable
Timetable that schedules DAG runs at specific listed datetimes. Suitable for predictable but truly irregular scheduling such as sporting events.
- Parameters
event_dates (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 (Optional[str]) -- 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
- property summary(self)[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.
- next_dagrun_info(self, *, last_automated_data_interval, restriction)[source]¶
Provide information to schedule the next DagRun.
The default implementation raises
NotImplementedError
.- Parameters
last_automated_data_interval (Optional[airflow.timetables.base.DataInterval]) -- 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
TimeRestriction
for 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
Optional[airflow.timetables.base.DagRunInfo]
- infer_manual_data_interval(self, *, 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_after
would be when the user triggers the run. The default implementation raisesNotImplementedError
.
- serialize(self)[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
deserialize
when the DAG is deserialized. The default implementation returns an empty dict.