airflow.timetables.trigger
¶
Module Contents¶
Classes¶
Timetable that triggers DAG runs according to a cron expression. |
- class airflow.timetables.trigger.CronTriggerTimetable(cron, *, timezone, interval=datetime.timedelta())[source]¶
Bases:
airflow.timetables._cron.CronMixin
,airflow.timetables.base.Timetable
Timetable that triggers DAG runs according to a cron expression.
This is different from
CronDataIntervalTimetable
, where the cron expression specifies the data interval of a DAG run. With this timetable, the data intervals are specified independently from the cron expression. Also for the same reason, this timetable kicks off a DAG run immediately at the start of the period (similar to POSIX cron), instead of needing to wait for one data interval to pass.Don't pass
@once
in here; useOnceTimetable
instead.- classmethod deserialize(data)[source]¶
Deserialize a timetable from data.
This is called when a serialized DAG is deserialized.
data
will be whatever was returned byserialize
during DAG serialization. The default implementation constructs the timetable without any arguments.
- 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
deserialize
when the DAG is deserialized. The default implementation returns an empty dict.
- 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_after
would be when the user triggers the run. The default implementation raisesNotImplementedError
.
- 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 (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
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
DagRunInfo | None