登录
No.50核心3 条来源

定时任务Cron Jobs

课堂投屏

一句话

定时任务是按设定的时间或周期自动执行的任务,比如每天早上发日报、每小时同步一次数据。

大白话

定时任务像手机闹钟:设好“每天早上 8 点”,到点它就自己响,不用你每天记着去按,设一次就一直生效。

比喻的边界

闹钟很少漏响,定时任务却可能因为网络或平台原因漏跑或重复跑;而且很多平台按 UTC 计时,和北京时间差 8 小时。

拿去就能用

开始做

我想让按自动运行,时区是 Asia/Shanghai。帮我写出定时配置,说明平台按哪个时区计算、表达式每一位的含义,再告诉我怎么手动触发一次验证。

还差:要执行的任务、执行时间,发给 AI 前记得换掉

出错了

我设置了每天早上 8 点发提醒,实际却总在下午 4 点收到。我怀疑平台按 UTC 计算时间,先帮我验证这个猜测,确认后再改表达式,并告诉我怎么确认下次执行时间。

想做深

我的定时任务每小时同步一次数据,担心偶尔漏跑或重复跑。帮我检查它重复执行会不会产生重复数据;如果会,提出一个最简单的防重办法,先说明再改。

别这样说 → 这样说

别这样说

帮我弄个定时任务每天跑一下。

这样说

我想每天早上 8 点(Asia/Shanghai 时区)给自己发一封昨日订单汇总邮件,项目部署在 Vercel。帮我写好定时任务配置和对应接口,说明时间怎么换算成 UTC,再告诉我怎么手动触发一次测试。

差别:写清了执行时间、时区、平台和测试方法。

容易误解:

误解定时任务设好了,就一定准点、只跑一次。

其实是很多平台只是尽力按时触发,可能漏跑,也可能重复跑,上一次没跑完下一次又开始了;任务要能安全地重复执行,并留下执行记录。

展开专业理解

Cron 表达式用五个字段表示分、时、日、月、星期,例如 0 0 * * * 在 UTC 零点执行,也就是北京时间早上 8 点。以 Vercel 为例,定时任务固定按 UTC 计算,触发是尽力而为,偶尔会漏发或重复;运行时间超过间隔时,可能两个实例同时在跑。所以任务要设计成可重复执行,并加上防并发和执行记录。以 Vercel 免费版为例,每天只能跑一次,而且只保证在设定的那个小时内触发;需要准点或更频繁,要换付费套餐或别的调度服务(查证 2026-09-26)。

来源

  1. Vercel 文档:Cron Jobs 核对于 2026-09-26
  2. Vercel 文档:管理 Cron Jobs 核对于 2026-09-26
  3. Vercel 文档:Cron Jobs 用量与计费 核对于 2026-09-26