airflow.sensors.date_time
¶
Module Contents¶
Classes¶
Waits until the specified datetime. |
|
Waits until the specified datetime, deferring itself to avoid taking up |
- 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 (Union[str, datetime.datetime]) – datetime after which the job succeeds. (templated)
- class airflow.sensors.date_time.DateTimeSensorAsync(*, target_time, **kwargs)[source]¶
Bases:
DateTimeSensor
Waits until the specified datetime, deferring itself to avoid taking up a worker slot while it is waiting.
It is a drop-in replacement for DateTimeSensor.
- Parameters
target_time (Union[str, datetime.datetime]) – datetime after which the job succeeds. (templated)