Friday, April 1, 2022

[SOLVED] Properly Defining DAG Schedule Interval

Issue

Problem: We're having difficulties having a DAG fire off given a defined interval. It's also preventing manual DAG executions as well. We've added catchup=False as well to the DAG definition.

Context: We're planning to have a DAG execute on a 4HR interval from M-F. We've defined this behavior using the following CRON expression:

0 0 0/4 ? * MON,TUE,WED,THU,FRI *

We're unsure at this time whether the interval has been defined properly or if there are extra parameters we're ignoring.

Any help would be appreciated.


Solution

I think you are looking for is 0 0/4 * * 1-5 which will run on 4th hour from 0 through 23 on every day-of-week from Monday through Friday.

Your DAG object can be:

from airflow import DAG

with DAG(
    dag_id="my_dag",
    start_date=datetime(2022, 2, 22),
    catchup=False,
    schedule_interval="0 0/4 * * 1-5",
) as dag:
    # add your operators here


Answered By - Elad
Answer Checked By - Clifford M. (WPSolving Volunteer)