airflow.timetables.assets
Classes
Combine time-based scheduling with event-based scheduling. |
Module Contents
- class airflow.timetables.assets.AssetOrTimeSchedule(*, timetable, assets)[source]
Bases:
airflow.timetables.simple.AssetTriggeredTimetableCombine time-based scheduling with event-based scheduling.
- timetable[source]
- description[source]
Human-readable description of the timetable.
For example, this can produce something like
'At 21:30, only on Friday'from the cron expression'30 21 * * 5'. This is used in the webserver UI.
- periodic[source]
Whether this timetable runs periodically.
This defaults to and should generally be True, but some special setups like
schedule=Noneand"@once"set it to False.
- can_be_scheduled[source]
Whether this timetable can actually schedule runs in an automated manner.
This defaults to and should generally be True (including non periodic execution types like @once and data triggered tables), but
NullTimetablesets this to False.
- active_runs_limit[source]
Maximum active runs that can be active at one time for a DAG.
This is called during DAG initialization, and the return value is used as the DAG’s default
max_active_runs. This should generally return None, but there are good reasons to limit DAG run parallelism in some cases, such as forContinuousTimetable.
- 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.
- validate()[source]
Validate the timetable is correctly specified.
Override this method to provide run-time validation raised when a DAG is put into a dagbag. The default implementation does nothing.
- Raises:
AirflowTimetableInvalid on validation failure.
- 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.
- 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.
- 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.
- 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). This is only
Nonewhen the Dag is being scheduled for the first time, which happens when the Dag processor first parses the Dag – before any Dag run exists.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:
- generate_run_id(*, run_type, **kwargs)[source]
Generate Run ID based on Run Type, run_after and logical Date.
- Parameters:
run_type (airflow.utils.types.DagRunType) – type of DagRun
data_interval – the data interval
run_after – the date before which dag run won’t start.