本文最后更新于 191 天前 ,文中信息可能已经过时。如有问题请在评论区留言。
简介
Cron 表达式是一种用于设置定时任务的表达方式,通常用于 Unix
系统中的 cron
定时任务调度工具。
它由五个或六个域(字段)组成,具体取决于使用的环境。每个域用 空格 分隔,分别表示如下:
- 分钟(0 - 59)
- 小时(0 - 23)
- 日期(1 - 31)
- 月份(1 - 12 或 JAN - DEC)
- 星期(0 - 7 或 SUN - SAT,其中 0 和 7 均表示星期日)
- (可选)年份
每个域可以使用以下字符来定义复杂的调度模式:
*
:表示所有可能的值。例如,分钟域中的*
表示每一分钟都会触发任务,
:用于分隔列表中的多个值。例如:1,2,5
表示在这些特定的时间点触发任务-
:用于定义范围。例如:1-5
表示 1 到 5 之间的每一个时间点/
:用于指定步长。例如:*/5
表示每个 5 个时间点触发一次任务?
:仅用于日期和星期字段,表示不指定具体的值。通常用于避免冲突L
:表示最后一个。例如,在日期域中,L
表示当月的最后一天W
:表示工作日(周一到周五)最近的日期。例如,15W
表示最接近 15 号的工作日#
:用于指定每月的第几个星期几。例如,3#2
表示每个月的第二个星期三
示例
每天凌晨 1 点执行一次
cronexp0 1 * * *
每周一的凌晨 2 点执行一次
cronexp0 2 * * 1
每月 1 号和 15 号的凌晨 3 点执行一次
cronexp0 3 1,15 * *
每天的每隔 5 分钟执行一次
cronexp*/5 * * * *
每个工作日(周一到周五)的凌晨 4 点执行一次
cronexp0 4 * * 1-5
字段总结
字段 | 允许值 | 特殊字符 |
---|---|---|
分钟 | 0 - 59 | * , - / |
小时 | 0 - 23 | * , - / |
日期 | 1 - 31 | * , - / ? L W |
月份 | 1 - 12 或 JAN - DEC | * , - / |
星期 | 0 -7 或 SUN - SAT | * , - / ? L # |
年(可选) | 1970 - 2099 | * , - / |
Cron 表达式的强大之处在于其灵活性,可以通过组合不同的特殊字符来实现各种复杂的定时任务调度需求。
感谢您的耐心阅读!来选个表情,或者留个评论吧!