常见原因:
DAG的起始日期(start_date)距今太久,导致所有的任务依赖都被标记为已完成。可以通过将start_date设置为当天之前的日期来解决。
DAG的schedule_interval参数设置错误。如果schedule_interval为@daily
,则DAG将每天在UTC午夜开始运行。如果希望在北京时间每天早上9点开始,则需要设置schedule_interval为00 01 * * *
。
执行周期内可能没有任务被触发。在调试时可以将execution_date_hardcoded参数设置为True来指定特定的执行日期,例如:
dag = DAG(
'my_dag',
schedule_interval='@daily',
default_args=default_args,
execution_date=datetime(2021, 5, 1), # 指定执行日期
is_airflow_specific=True,
)
DAG没有运行。通过查看Airflow的日志文件可以查看DAG是否被调度和执行。
DAG的task_missed_schedule选项为False,如果某些任务超时没有运行,它们将被认为是'错过了计划”。可以将task_missed_schedule设置为True以尝试重新触发这些任务。
DAG的max_active_runs参数可能被设置得太低,导致DAG无法处理所有的触发请求。可以将max_active_runs设置得更高,或者将其设置为None以允许无限数量的并发运行。