Search code examples
pythonscheduled-tasksairflow

How do I check when my next Airflow DAG run has been scheduled for a specific dag?


I have airflow set up and running with some DAGs scheduled for once a day "0 0 * * *".

I want to check when is the next time a specific dag has been scheduled to run, but I can't see where I can do that within the admin.


Solution

  • If you want you use the Airflow's CLI, there's next_execution option

    Get the next execution datetime of a DAG.

    airflow next_execution [-h] [-sd SUBDIR] dag_id
    

    UPDATE-1

    If you need to do it programmatically (within an Airflow task), you can refer to

    @cli_utils.action_logging
    def next_execution(args):
        """
        Returns the next execution datetime of a DAG at the command line.
        >>> airflow next_execution tutorial
        2018-08-31 10:38:00
        """
        dag = get_dag(args)
    
        if dag.is_paused:
            print("[INFO] Please be reminded this DAG is PAUSED now.")
    
        if dag.latest_execution_date:
            next_execution_dttm = dag.following_schedule(dag.latest_execution_date)
    
            if next_execution_dttm is None:
                print("[WARN] No following schedule can be found. " +
                      "This DAG may have schedule interval '@once' or `None`.")
    
            print(next_execution_dttm)
        else:
            print("[WARN] Only applicable when there is execution record found for the DAG.")
            print(None)
    

    UPDATE-2

    To get not just the next, but further execution_dates, refer to Airflow - how to get all the future run date