首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >气流调度图

气流调度图
EN

Stack Overflow用户
提问于 2021-09-09 08:54:58
回答 2查看 189关注 0票数 1

是否可以在一个月的第5天、月底前的14天和月底的14天内三次运行DAG。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-09 16:32:15

另一个选项是在Cron表达式中指定日期。关于这个回答,我们可以在月底使用L。然而,它无法确定月底前的14天。我不确定用14来代表过去两周的时间是否可以接受。

提议的schedule_interval将是"0 0 5,14,L * *"。但是由于气流将在每个周期结束时运行,执行日期将显示上个月的日期。您需要确保start_date启动触发器的时间超过一个月。

要用Python解决第14天的问题,

代码语言:javascript
复制
import calendar

last_day = calendar.monthrange("{{ execution_date.year }}", "{{ execution_date.month }}")[1]

schedule_interval = f"0 0 5,{last_day - 14},L * *"

或者将摆摆方法与execution_date一起使用:

代码语言:javascript
复制
last_day = "{{ execution_date.days_in_month }}"
schedule_interval = f"0 0 5,{last_day - 14},{last_day} * *"

不要忘记在DAG中为气流2.1或更高版本添加render_template_as_native_obj=True,使其输出为Python而不是string。如果它不起作用,就需要将go转换为int。

引用Crontab.guru中的cron格式 (这里不支持L字符,所以我用31作为位置持有者)

票数 1
EN

Stack Overflow用户

发布于 2021-09-09 09:08:14

我认为这里最好的解决方案是每天运行DAG,然后检查适合您的条件的execution_date。

Crontab表达式只支持前进日。对于这个月的第五天,应该是'0 0 5* *',但是向后是不可能的。

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

https://stackoverflow.com/questions/69115149

复制
相关文章

相似问题

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