2

我这样配置我的 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 永远不要同时运行超过一次吗?

4

2 回答 2

2

您可以 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)

我从来没有见过它发生,你确定这些运行不是回填吗,请参阅:https ://stackoverflow.com/a/47953439/9132848

于 2017-12-25T02:42:01.267 回答
0

我认为这是因为您错过了预定的时间,并且当您再次打开时气流会自动回填。您可以通过气流.cfg 中的 catchup_by_default = False 禁用此功能。

于 2017-12-28T05:44:49.783 回答