首页/数据/数据工程与 ETL 速查/cron 表达式基础与示例

cron 表达式基础与示例

cron 用五个字段描述分钟、小时、日、月、星期:调度平台大多兼容该语法,但扩展符(L、?、#)与“日+周”同时指定时的行为各平台不同。

字段

位置字段取值
1分钟0-59
2小时0-23
3日1-31
4月1-12
5星期0-7(0 与 7 常表示周日)

常用表达式与含义

常用表达式与含义
0 2 * * *       每天 02:00
30 1 * * 1-5    周一到周五 01:30
0 */4 * * *     每 4 小时整点
15 3 1 * *      每月 1 日 03:15
0 2 * * 6,0     周六与周日 02:00
许多实现中“日”和“星期”同时限制时是 OR 关系,容易意外多跑;不确定就只用一个字段。

易错点

  • 平台时区与服务器时区不一致时,表达式含义整体偏移
  • 月末 31 号的表达式在 2 月不会触发,月末任务要用月初触发处理上月数据

数据来源与参考

  • crontab(5) man 手册
  • Quartz CronTrigger 语法说明(各调度平台扩展参考)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌