不需要的 DAG 在 Airflow 中运行

unwanted DAG runs in Airflow

我这样配置我的 DAG:

default_args = {
    'owner': 'Aviv',
    'depends_on_past': False,
    'start_date': datetime(2017, 1, 1),
    'email': ['aviv@oron.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 0,
    'retry_delay': timedelta(minutes=1)
}

dag = DAG(
    'MyDAG'
    , schedule_interval=timedelta(minutes=3)
    , default_args=default_args
    , catchup=False
) 

并且出于某种原因,当我取消暂停 DAG 时,它会立即执行两次。 知道为什么吗?是否有任何规则可以告诉这个 DAG 永远不会同时 运行 超过一次?

您可以这样指定 max_active_runs

dag = airflow.DAG(
    'customer_staging',
    schedule_interval="@daily",
    dagrun_timeout=timedelta(minutes=60),
    template_searchpath=tmpl_search_path,
    default_args=args,
    max_active_runs=1)

我从未见过这种情况发生,您确定这些运行不是回填吗,请参阅:

我想是因为你错过了预定的时间,当你再次打开它时,气流会自动回填它。您可以通过以下方式禁用它 catchup_by_default = airflow.cfg 中的假。