blob: 19858fa2a45af8dd3a8a11632884d5d7d79e24bf [file] [log] [blame]
:py:mod:`airflow.timetables.trigger`
====================================
.. py:module:: airflow.timetables.trigger
Module Contents
---------------
Classes
~~~~~~~
.. autoapisummary::
airflow.timetables.trigger.CronTriggerTimetable
.. py:class:: CronTriggerTimetable(cron, *, timezone, interval = datetime.timedelta())
Bases: :py:obj:`airflow.timetables._cron.CronMixin`, :py:obj:`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; use ``OnceTimetable`` instead.
.. py:method:: deserialize(data)
:classmethod:
Deserialize a timetable from data.
This is called when a serialized DAG is deserialized. ``data`` will be
whatever was returned by ``serialize`` during DAG serialization. The
default implementation constructs the timetable without any arguments.
.. py:method:: serialize()
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.
.. py:method:: infer_manual_data_interval(*, run_after)
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 raises
``NotImplementedError``.
.. py:method:: next_dagrun_info(*, last_automated_data_interval, restriction)
Provide information to schedule the next DagRun.
The default implementation raises ``NotImplementedError``.
:param last_automated_data_interval: The data interval of the associated
DAG's last scheduled or backfilled run (manual runs not considered).
:param restriction: Restriction to apply when scheduling the DAG run.
See documentation of :class:`TimeRestriction` for details.
:return: 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.