【发布时间】:2022-12-28 16:12:27
【问题描述】:
我需要在本月的第 3 个星期一上午 11 点安排我的 DAG。 我尝试了以下 sysntax,但它不起作用:
dag = DAG( 小路(文件)。干, 默认参数=默认参数, 开始日期=天前(1), schedule_interval="0 11 * * 1#4" )
【问题讨论】:
我需要在本月的第 3 个星期一上午 11 点安排我的 DAG。 我尝试了以下 sysntax,但它不起作用:
dag = DAG( 小路(文件)。干, 默认参数=默认参数, 开始日期=天前(1), schedule_interval="0 11 * * 1#4" )
【问题讨论】:
Airflow 仅在特定任务的时间窗口过去后才执行任务,即计划在 4 月的第 3 个星期一执行的任务将在 5 月的第 3 个星期一执行。但是,由于您的 start_date 参数('days_ago(1)'),在 start_date 和现在之间没有足够的时间来执行任务。因此,要运行应该跨越 4 月的第 3 个星期一和 5 月的时间范围的任务,“start_date”应该在 4 月的第 3 个星期一的上午 11 点之前。然后,一旦当前时间过去了 5 月的第 3 个星期一上午 11 点,就应该执行任务。
另外请注意(可能是打字错误),但您使用的 cron 表达式将解析为该月的第 4 个星期一,因此您正在寻找:“0 11 * * 1#3”。
【讨论】:
第 3 个星期一将是:schedule_interval="0 11 * * 1#3"
第 4 个星期一将是:schedule_interval="0 11 * * 1#4"
# 1,2,3,4,5 之后表示相应周末的第 1、2、3、4、5 周
【讨论】: