← AI 百科

Cron定时任务不执行

报错库 ·
一句话:定时任务到了时间却没跑,常见原因是时区、表达式、部署环境、权限或进程未启动。

它是什么

Cron定时任务不执行是自动化项目里很常见的问题。它可能发生在服务器crontab、Node定时任务、GitHub Actions、Vercel Cron、云函数定时触发等场景。

适合干什么

  • 做自动日报、数据同步、定时抓取的人
  • 使用服务器或云平台定时任务的开发者
  • 部署后发现本地能跑线上不跑的人
  • 需要排查时区问题的新手

不适合干什么

  • 用户手动点击触发的普通任务
  • 队列任务失败但不是按时间触发
  • 没有任何日志记录的定时逻辑

普通人怎么用

  • 检查cron表达式
  • 确认服务器或平台时区
  • 确认任务进程是否启动
  • 查看平台执行日志
  • 手动触发一次验证代码是否正常

进阶用户怎么用

  • 给定时任务增加开始和结束日志
  • 记录任务执行ID
  • 设置失败告警
  • 把长任务拆成队列任务
  • 避免多实例重复执行

常见误区

  • 忽略UTC和本地时区差异
  • 以为部署后进程会自动常驻
  • 任务没有日志,失败也不知道
  • 多台机器同时执行导致重复处理

和相似工具的区别

  • Cron不执行 vs 任务执行失败:不执行是触发阶段出问题,执行失败是触发后代码运行出问题。
  • Cron定时任务 vs 队列任务:Cron按时间触发,队列任务按事件或积压任务触发。

入门步骤

  • 确认表达式含义
  • 确认运行环境和时区
  • 手动运行任务函数
  • 查看部署平台日志
  • 增加心跳或告警

推荐工具(第三方)

Linux crontab、GitHub Actions、Vercel Cron、node-cron、Cloudflare Workers