我的一些气流 dag 没有按计划执行:
如您所见,这里有两个 dag 应该在 02-11 世界标准时间的 5:00 和 8:00 运行,但没有运行。以下是计划为 0 5,17 *** 的相关 dag 定义信息:
default_args = {
'owner' : 'airflow',
'retries' : 1,
'retry_delay' :timedelta(minutes=5)
}
dag = DAG(
dag_id = '*********',
start_date = airflow.utils.dates.days_ago(2),
default_args = default_args,
schedule_interval = '0 5,17 * * *'
)
如您所见,2-11 日的 5:00 运行时间超过了 start_date 之后的完整 schedule_interval,因此没有理由它不应该根据 this astronomer article 和所有其他文档触发.
答案 0 :(得分:1)
气流计划间隔可能是一个具有挑战性的概念。基本上,气流不会在您计划周期的开始时间触发 DAG,而是会在您的计划周期结束时触发。
例如,如果您在 2 点钟安排每日批处理作业,它将在调度期结束时触发您的 DAG,这意味着它将在第 24 小时(第二天 2 点钟)触发,如果是每小时作业,则相同然后它将在 60 分钟完成后触发,因此您的 DAG 将在第 60 分钟即下一小时触发。
在您的示例中以同样的方式,您安排了第 5 小时和第 17 小时,因此它会在计划周期完成后触发,在这种情况下,第 5 小时运行将在第 17 小时触发,第 17 小时运行将在下一个触发第 5 小时。