airflow.sensors.date_time
¶
Module Contents¶
Classes¶
Waits until the specified datetime. |
|
Wait until the specified datetime occurs. |
- class airflow.sensors.date_time.DateTimeSensor(*, target_time, **kwargs)[source]¶
Bases:
airflow.sensors.base.BaseSensorOperator
Waits until the specified datetime.
A major advantage of this sensor is idempotence for the
target_time
. It handles some cases for whichTimeSensor
andTimeDeltaSensor
are not suited.- Example 1 :
If a task needs to wait for 11am on each
execution_date
. UsingTimeSensor
orTimeDeltaSensor
, all backfill tasks started at 1am have to wait for 10 hours. This is unnecessary, e.g. a backfill task with{{ ds }} = '1970-01-01'
does not need to wait because1970-01-01T11:00:00
has already passed.- Example 2 :
If a DAG is scheduled to run at 23:00 daily, but one of the tasks is required to run at 01:00 next day, using
TimeSensor
will returnTrue
immediately because 23:00 > 01:00. Instead, we can do this:DateTimeSensor( task_id="wait_for_0100", target_time="{{ next_execution_date.tomorrow().replace(hour=1) }}", )
- Parameters
target_time (str | datetime.datetime) – datetime after which the job succeeds. (templated)
- class airflow.sensors.date_time.DateTimeSensorAsync(*, start_from_trigger=False, end_from_trigger=False, trigger_kwargs=None, **kwargs)[source]¶
Bases:
DateTimeSensor
Wait until the specified datetime occurs.
Deferring itself to avoid taking up a worker slot while it is waiting. It is a drop-in replacement for DateTimeSensor.
- Parameters
target_time – datetime after which the job succeeds. (templated)
start_from_trigger (bool) – Start the task directly from the triggerer without going into the worker.
trigger_kwargs (dict[str, Any] | None) – The keyword arguments passed to the trigger when start_from_trigger is set to True during dynamic task mapping. This argument is not used in standard usage.
end_from_trigger (bool) – End the task directly from the triggerer without going into the worker.