

In other words, a DAG run will only be scheduled one interval after start_date.īasically, if the start date is earlier than the data_interval_start, the DAG will be scheduled. Similarly, since the start_date argument for the DAG and its tasks points to the same logical date, it marks the start of the DAG’s rst data interval, not when tasks in the DAG will start running. What about start_date ? According to documentation: And according to Airflow’s official document:Ī DAG run is usually scheduled after its associated data interval has ended, to ensure the run is able to collect all the data within the time period.įor example, a DAG with schedule 30 22 * * *, you can clearly see in the screenshot: – data_interval_end: the end of the data intervalĭAG run time: this is the actual DAG execution time. – logical_date / data_interval_start: this was used to be called execution date until Airflow 2.2, but as the value indicates thestart of the data interval, not the actual execution time, the variable name is updated. There are two values associates to the concept: For example, if you define the schedule with 30 22***(22:30daily),thenyourdataintervalwillbefrom22:30 to the same time next date.

But what most commonly for more customized schedule is CRON job. A preset provides easier, human readable schedule like.

#Airflow dag not updating manual#
Schedule interval by default is set to None and this is also the case when you use manual or external trigger to the DAG.
#Airflow dag not updating code#
The code snippets included in the article are tested on Airflow 2.2.5 + Composer.

Why is a DAG not triggered when my scheduled time arrives? Why a DAG is not triggered at all saying “the task start time is later than execution time”? My CRON job ranges from hours to months, how I should dynamically set up the start time? I asked myself all these questions when I was working with Airflow, and here I just want to make it a record of my understanding. It’s still always confusing the first time you start with Airflow.
