第 1 课
什么是 Cron
定时任务与五字段 Unix cron 的常见场景。
Cron 是基于时间的任务调度机制。在 Unix 传统里,cron 表达式(或 crontab 行)说明 何时 运行命令或触发任务——而不是任务 做什么。
一行五个决策
经典 Unix cron 用 五个字段,空格分隔:
分 时 日 月 周
示例:0 9 * * 1-5 表示「第 0 分、第 9 时、每月每日、每季每月、周一到周五」。通俗说:工作日上午 09:00。
调度器用当前时间逐字段匹配,全部满足则触发。
常见出现位置
| 场景 | 典型用途 |
|---|---|
Linux crontab -e | 日志轮转、备份、缓存预热 |
Kubernetes CronJob | 命名空间清理、报表生成 |
GitHub Actions schedule | 夜间构建、依赖扫描 |
| 云托管调度 | Lambda/EventBridge 等(常有扩展语法) |
| 应用内库 | 借鉴 cron 语法的进程内调度 |
并非所有平台 完全一致 的五字段规则——务必读该平台文档——但心智模型可迁移。
Cron 与间隔定时器
「每 5 分钟」可用 cron 的 */5 * * * *,也可用代码里的简单间隔。Cron 擅长 墙钟边界(每天 02:00、每月 1 号、工作日 09:00)。
间隔定时器适合「进程启动后每 N 秒」。按运维预期选工具。
Cron 不保证恰好一次
主机宕机、上次任务超时、并发限制等会导致错过或重叠执行。任务应设计为 幂等,重复或跳过一次仍可接受。
要点
Cron 表达式是 紧凑的调度描述。下一课拆解各字段语法——*、列表、范围与步长——让你能读懂任意一行。