繁体   English   中英

catchup = False,为什么仍然安排了两次调度运行?

[英]catchup = False, why still two schedule runs are scheduled?

我有简单的 DAG:(Airflow v1.10.16,在 localhost 机器上使用 SequentialExecutor)

  • start_date设置在过去
  • 追赶=假
default_args = {'owner': 'test_user', 
                'start_date': datetime(2019, 12, 1, 1, 00, 00),}

graph1 = DAG(dag_id = 'test_dag', default_args=default_args,
             schedule_interval=timedelta(days=1),
             catchup = False)

t = PythonOperator(task_id='t', python_callable=my_func, dag=graph1)

根据代码注释

:param catchup: 执行调度程序追赶(或只运行最新的)?

我预计当调度程序出现时,它应该只安排这个 dag 在过去的日期比现在运行一次 但是,我遇到的行为是:调度程序正在安排最近的两次运行(而不是一次,最近一次)

我在 2019-12-09 04:03:00Z(= 现在)激活了调度程序,这里是任务实例计划运行: 在此处输入图片说明

有人可以澄清为什么在过去的日期安排了两次而不是一次吗? 这是我的理解中的一些错误或错误吗?

这是 Airflow 中的一个错误,当使用 timedelta 作为 1.10.11 之前的版本的调度间隔时。 它在使用 cron 时按预期工作。 现在已在 1.10.11 中修复。

https://github.com/apache/airflow/pull/8776

https://issues.apache.org/jira/browse/AIRFLOW-3369

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM