airflow.triggers.external_task

Module Contents

Classes

TaskStateTrigger

Waits asynchronously for a task in a different DAG to complete for a specific logical date.

DagStateTrigger

Waits asynchronously for a DAG to complete for a specific logical date.

class airflow.triggers.external_task.TaskStateTrigger(dag_id, execution_dates, trigger_start_time, states=None, task_id=None, poll_interval=2.0)[source]

Bases: airflow.triggers.base.BaseTrigger

Waits asynchronously for a task in a different DAG to complete for a specific logical date.

Parameters
  • dag_id (str) – The dag_id that contains the task you want to wait for

  • task_id (str | None) – The task_id that contains the task you want to wait for.

  • states (list[str] | None) – allowed states, default is ['success']

  • execution_dates (list[datetime.datetime]) – task execution time interval

  • poll_interval (float) – The time interval in seconds to check the state. The default value is 5 sec.

  • trigger_start_time (datetime.datetime) – time in Datetime format when the trigger was started. Is used to control the execution of trigger to prevent infinite loop in case if specified name of the dag does not exist in database. It will wait period of time equals _timeout_sec parameter from the time, when the trigger was started and if the execution lasts more time than expected, the trigger will terminate with ‘timeout’ status.

serialize()[source]

Serialize TaskStateTrigger arguments and classpath.

async run()[source]

Check periodically in the database to see if the dag exists and is in the running state.

If found, wait until the task specified will reach one of the expected states. If dag with specified name was not in the running state after _timeout_sec seconds after starting execution process of the trigger, terminate with status ‘timeout’.

count_running_dags(session)[source]

Count how many dag instances in running state in the database.

count_tasks(*, session=NEW_SESSION)[source]

Count how many task instances in the database match our criteria.

class airflow.triggers.external_task.DagStateTrigger(dag_id, states, execution_dates, poll_interval=5.0)[source]

Bases: airflow.triggers.base.BaseTrigger

Waits asynchronously for a DAG to complete for a specific logical date.

Parameters
  • dag_id (str) – The dag_id that contains the task you want to wait for

  • states (list[airflow.utils.state.DagRunState]) – allowed states, default is ['success']

  • execution_dates (list[datetime.datetime]) – The logical date at which DAG run.

  • poll_interval (float) – The time interval in seconds to check the state. The default value is 5.0 sec.

serialize()[source]

Serialize DagStateTrigger arguments and classpath.

async run()[source]

Check periodically if the dag run exists, and has hit one of the states yet, or not.

count_dags(*, session=NEW_SESSION)[source]

Count how many dag runs in the database match our criteria.

Was this entry helpful?