Airflow 气流DAG由调度程序触发两次。每周DAG
对于以下配置,气流DAG在周一触发两次 当我使用Airflow 气流DAG由调度程序触发两次。每周DAG,airflow,scheduler,Airflow,Scheduler,对于以下配置,气流DAG在周一触发两次 当我使用3011**1cron表达式时,DAG根本不会触发。所以我想我必须在表达式中再加一个。 3011**1*-它可以工作 default_args: 'start_date': airflow.utils.dates.days_ago(1) 达格: 计划时间间隔=30 11**1*,##这是周一11:30的每周运行时间 然而,DAG每周一被触发2次。间隔1分钟: 11:30:05 11:30:58 可能的原因是什么?6位cron表达式不正确,您输
3011**1
cron表达式时,DAG根本不会触发。所以我想我必须在表达式中再加一个。
3011**1*
-它可以工作
default_args:
'start_date': airflow.utils.dates.days_ago(1)
达格:
计划时间间隔=30 11**1*
,##这是周一11:30的每周运行时间
然而,DAG每周一被触发2次。间隔1分钟:
- 11:30:05
- 11:30:58
可能的原因是什么?6位cron表达式不正确,您输入的第一个是正确的。你跑了多少次DAG?
我建议你试着先运行
schedule\u interval=@weekly
,看看会发生什么 airflow使用的cron解析器将第6位解释为秒(如您在此处所见:)
我假设你的DAG在一分钟内完成。在下一个调度程序循环中,它看到cron调度仍然匹配(在第58秒),因此它再次启动DAG
我也有同样的问题,因为气流文档链接到一个维基百科关于cron的条目,其中显示了6个条目。6个条目是非标准的,并且有多个实现。无论如何,对于气流,第6个条目被解释为秒
您的5位cron表达式应该可以工作。也许再试一次?但是,请更改dag id,否则您可能会遇到奇怪的行为:From:
更改计划间隔始终需要更改dag_id,因为以前运行的TaskInstances不会与新的计划间隔对齐,所以最后,我解决了问题
是的,它是正确的,5位cron表达式是正确的。
我正在使用schedule\u interval=30 11**1(每周一11:30 UTC)
它不起作用,因为我有开始的时间:
'start_date': airflow.utils.dates.days_ago(1)
我在Airflow上找到了这个博客-通过CRON表达式找到确切的[开始日期]
如果是每周工作,你的开始日期应该是一周前。
所以我把它改成了“开始日期”:aiffort.utils.dates.days\u ago(7)
现在它运行良好
谢谢你 首先,我用5位数的表达式安排,从未触发。然后我看了一下Airflow文档,在那个里我看到了,总共6位数字,还有年份。所以我把它改成了6位数,它触发了DAG。问题是它会触发两次。我不知道它为什么会这样。原因可能是什么?