我试图在每个月的第二天上午11点运行Airflow,但我没有这样做。我的设置是:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': today_date,
'email': ['mymail'],
'email_on_failure': True,
'email_on_retry': True,
'retries': 1,
'retry_delay': timedelta(minutes=7),
}
dag = DAG('my_dag', default_args=default_args, schedule_interval='00 11 02 * *')
当我每天运行DAG时,Airflow可以完美运行:
schedule_interval='00 11 * * *'
但我似乎无法按月工作:(
谢谢!
答案 0 :(得分:1)
如果您想在每月的11:00 AM运行dag。您可以使用此代码。
schedule_interval = '0 11 2 * *'
dag_name = DAG(
'DAG_ID',
default_args=default_args,
schedule_interval=schedule_interval,
)
在计划时间间隔中,0表示分钟,11表示小时,2表示每月的某天,*表示任何月份,下一个*表示一周中的任意一天。
有关更多计划程序信息,请访问此网站。 https://crontab.guru/#0_11_2_ _
答案 1 :(得分:0)
在您提及的评论中,您对datetime.today()
使用start_date
,这正是造成问题的原因。作业实例在其涵盖的时间段结束后启动,但在您的情况下将永远不会发生。尝试将start_date
调整为:
from datetime import date
from dateutil.relativedelta import relativedelta
start_date = date.today() + relativedelta(months=-1)
我建议您重新阅读文档中的Scheduling & Triggers部分。我还花了几次时间来了解如何正确安排DAG。