气流回填不起作用

Posted

技术标签:

【中文标题】气流回填不起作用【英文标题】:Airflow backfill not working 【发布时间】:2016-11-11 09:57:28 【问题描述】:

我正在使用气流运行工作流 DAG。我设置的开始日期是 2014 年 5 月 26 日,schedule_interval 是 1 天,没有结束日期,它使用的是 Celery Executor。 Airflow 从给定日期开始运行我的任务,并按预期从开始日期开始每天递增。

但问题是,它只会在开始日期后的 16 天内安排和运行 dags,然后停止。我必须重新启动调度程序服务才能安排下一组 dags 并运行。

我已经修改了下面的属性,在airflow.cfg中将它们设置为更高,但它仍然不起作用,

dag_concurrency = 9999
max_active_runs_per_dag = 9999
parallellism = 9999
celeryd_concurrency = 4

我的要求是让气流从开始日期到当前日期执行我的任务。看起来它可以运行的 dag 数量有限制,但我无法弄清楚。请提出建议。

我的气流版本是 1.7.1.2

【问题讨论】:

【参考方案1】:

不确定我的理解是否正确,您想从某个日期到接下来的 16 天运行一项日常工作吗? 如果是这样,它与 airflow.cfg 没有任何关系,如果您有很多 Dag,您发布的设置实际上可能会“杀死”您的机器,这是关于任务实例的将并行运行和调度。

我猜你需要定义一个start_dateend_date。 您可以在构建将负责该工作的 DAG 时执行此操作。 一种方法是定义 default_args,然后在你的 dag 上使用它们。

default_args = 
     'owner': 'userXX',
     'start_date': datetime(2014, 05, 26),
     'end_date': datetime(2014, 06, 11),
     'email': ['mail1..','mail2...'],
    ...


mydag = DAG(
           PARENT_ID, default_args=default_args,
           schedule_interval="@daily",
           user_defined_macros=user_defined_macros
)

_some_Operator(
                task_id='task_idxx',
                .. other settings/jobrun...
                dag=mydag,

            )

希望对你有帮助

【讨论】:

在您的评论中将start_date 打错至end_date 我遇到了同样的问题,这两个参数没有帮助:(

以上是关于气流回填不起作用的主要内容,如果未能解决你的问题,请参考以下文章

气流回填澄清

气流回填澄清

如何防止气流回填 dag 运行?

如果任何任务失败,气流回填将停止

是否可以同时进行气流回填和调度?

如何防止气流回填dag运行?