首页 > 解决方案 > 气流 DAG 调度

问题描述

如何在“本月的最后一天”和“本月的最后一个工作日”安排我的 Airflow DAG

注意 - 如果月份有 28/29/30/31 天并且是否是闰年,则应注意调度。

标签: airflowjob-schedulingdirected-acyclic-graphsairflow-scheduler

解决方案


编辑:根据crontab.cronhub.io,上周的一天可以定义为LW. 也就是说,如果您想同时涵盖该月的最后一天和最后一个工作日,您应该使用 crontab 表达式,例如00 08 L,LW * *. 请注意,我没有尝试过,仍然不能完全确定。

我不确定如何定义“本月的最后一个工作日”,但您可以使用crontab 表达式定义“本月的最后一天”,如下所示:

 00 08 L * * # Run at 08.00 AM on the last day of the month, every month

在 DAG 文件中:

 with DAG(
     dag_id='tester',
     schedule_interval='00 08 L * *', # Here
     ...
 ) as dag:
        ...

此外,

您可以使用逗号定义超过一天,如以下表达式:

 00 08 1,L * * # Run at 08.00 AM on the last day and first day of the month, every month

推荐阅读