You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助配置Airflow任务每小时第15分钟执行

解决Airflow任务每小时第15分钟执行的配置问题

你用的15 * * * *这个cron表达式本身是对的,没成功大概率是时区或任务起始时间的配置问题,以下是具体排查和修复方案:

1. 检查Airflow时区设置

Airflow默认用UTC时区,要是你的业务时区不是UTC,执行时间会和预期偏差。比如你在东八区(UTC+8),UTC时间的15分对应你当地的23分,自然不符合要求。

  • 修改airflow.cfg里的时区配置:
    default_timezone = Asia/Shanghai  # 换成你的业务时区
    
  • 重启Airflow的webserver和scheduler服务让配置生效。

2. 正确设置任务的start_date

Airflow是基于start_date和schedule_interval计算下一次执行时间的,要是start_date不是整点或者带了非0的分钟数,会导致调度乱掉。

  • 建议把start_date设为过去的整点时间,示例代码:
    from datetime import datetime
    from airflow import DAG
    from airflow.operators.empty import EmptyOperator
    
    with DAG(
        dag_id='hourly_15min_task',
        start_date=datetime(2024, 1, 1, 0, 0),  # 整点起始
        schedule_interval='15 * * * *',
        catchup=False,  # 关闭补跑,避免一次性执行一堆历史任务
        timezone='Asia/Shanghai'  # 也可以单独给这个DAG指定时区
    ) as dag:
        task = EmptyOperator(task_id='sample_task')
    

3. 验证调度逻辑

Airflow调度器会根据上一次任务执行时间(或start_date)加上调度间隔算下一次时间,要是之前任务失败或延迟,会影响后续调度:

  • 打开Airflow UI,看DAG的"Graph View"或"Tree View",检查任务执行时间是否符合预期。
  • 如果有历史任务干扰,手动清除任务实例,让调度器重新计算时间。

4. Airflow 2.x+版本的小提醒

Airflow 2.2及以上版本,更推荐用schedule参数替代schedule_interval(功能完全一致,是官方主推的新写法):

schedule='15 * * * *'

内容的提问来源于stack exchange,提问作者Ramakrishna Vegiraju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:35:21