Say you have an airflow DAG that doesn\'t make sense to backfill, meaning that, after it\'s run once, running it subsequent times quickly would be completely pointless.
Setting catchup=False in your dag declaration will provide this exact functionality.
I don't have the "reputation" to comment, but I wanted to say that catchup=False was designed (by me) for this exact purpose. In addition, I can verify that in 1.10.1 it is working when set explicitly in the instantiation. However I do not see it working when placed in the default args. I've been away from Airflow for 18 months though, so it will be a bit before I can take a look at why the default args isn't working for catchup.
dag = DAG('example_dag',
max_active_runs=3,
catchup=False,
schedule_interval=timedelta(minutes=5),
default_args=default_args)