首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >气流DAG由调度程序触发两次。每周DAG

气流DAG由调度程序触发两次。每周DAG
EN

Stack Overflow用户
提问于 2019-11-11 18:33:46
回答 3查看 2K关注 0票数 1

由于下面的配置,周一会触发两次气流DAG。

当我使用30 11 * * 1 cron表达式时,DAG根本不触发。所以我想我必须在表达式中再加一个*。30 11 * * 1 * -它能工作。

代码语言:javascript
运行
复制
default_args:
'start_date': airflow.utils.dates.days_ago(1)

达格:schedule_interval=,30 11 * * 1 *,##,这是周一11:30的每周一次。

然而,DAG每周一被触发2次。相隔1分钟:

  • 11:30:05
  • 11:30:58

可能的原因是什么?

EN

回答 3

Stack Overflow用户

发布于 2019-12-06 04:19:31

所以我终于解决了这个问题。

是的,它是正确的,5位数字的cron表达式是正确的。我正在使用schedule_interval = 30 11 * * 1 #(Every Monday 11:30 UTC)

它不起作用了,因为我有我的start_time:

代码语言:javascript
运行
复制
'start_date': airflow.utils.dates.days_ago(1)

我发现了这个关于气流的博客-通过CRON表达式这里找到确切的这里

如果这是每周一次的工作,你的start_date应该是一周前。所以我把它改成了'start_date': airflow.utils.dates.days_ago(7)

现在一切都很顺利。

谢谢!

票数 2
EN

Stack Overflow用户

发布于 2019-11-13 06:56:27

6位数字cron表达式不正确,您输入的第一个数字是正确的。你做了多少次DAG?我建议您先运行schedule_interval=@weekly,看看会发生什么?

票数 0
EN

Stack Overflow用户

发布于 2019-11-19 15:40:23

气流使用的cron解析器将第六位解释为秒(如您在这里看到的:croniter.py#L14 )。

我想你的DAG还不到一分钟就结束了。在下一个调度器循环中,它看到cron调度仍然匹配(在第58秒),因此它再次启动DAG。

我也有同样的问题,因为气流文档链接到维基百科关于cron的条目中显示了6个条目。6个条目是非标准的,并且有一个以上的实现。无论如何,对于气流,第六项被解释为秒。

您的5位cron表达式应该可以工作。也许再试一次?但是,更改dag id,否则您可能会遇到奇怪的行为: From https://cwiki.apache.org/confluence/display/AIRFLOW/Common+PitfallsChanging schedule interval always requires changing the dag_id, because previously run TaskInstances will not align with the new schedule interval

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58806858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档