Cron表达式通过特定的规则指定时间,用于定时任务,本文简单记录它的部分语法和实例,并不完全,能覆盖日常大部分需求。
1. Cron表达式介绍
Cron表达式是一个字符串,分为6或7个域,每两个域之间用空格分隔,其语法格式为:
"秒域 分域 时域 日域 月域 周域 年域"
其中,年域可以省略,省略时表示每年。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。每个域最多支持一个前导零。
2. 域介绍
域名 | 是否必须 | 取值范围 | 特殊字符 |
秒域 | 是 | 0~59的整数 | * , - / |
分域 | 是 | 0~59的整数 | * , - / |
时域 | 是 | 0~23的整数 | * , - / |
日域 | 是 | 1~31的整数 | * , - / ? L W |
月域 | 是 | 1~12的整数或JAN~DEC | * , - / |
周域 | 是 | 1~7的整数或SUN~SAT | * , - / ? L # |
年域 | 否 | 1970~2099的整数 | * , - / |
3. 特殊字符介绍
特殊字符 | 含义 | 示例 |
---|---|---|
* |
所有可能的值。 | 在月域中,* 表示每个月;在星期域中,* 表示星期的每一天。 |
, |
列出枚举值。 | 在分钟域中,5,20 表示分别在5分钟和20分钟触发一次。 |
- |
范围。 | 在分钟域中,5-20 表示从5分钟到20分钟之间每隔一分钟触发一次。 |
/ |
指定数值的增量。 | 在分钟域中,0/15 表示从第0分钟开始,每15分钟。在分钟域中3/20 表示从第3分钟开始,每20分钟。 |
? |
不指定值,仅日期和星期域支持该字符。 | 当日期或星期域其中之一被指定了值以后,为了避免冲突,需要将另一个域的值设为? 。 |
L |
单词Last的首字母,表示最后一天,仅日期和星期域支持该字符。
说明 指定L 字符时,避免指定列表或者范围,否则,会导致逻辑问题。
|
|
W |
除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。W 字符寻找最近有效工作日时不会跨过当前月份,连用字符LW 时表示为指定月份的最后一个工作日。 |
在日期域中5W ,如果5日是星期六,则将在最近的工作日星期五,即4日触发。如果5日是星期天,则将在最近的工作日星期一,即6日触发;如果5日在星期一到星期五中的一天,则就在5日触发。 |
# |
确定每个月第几个星期几,仅星期域支持该字符。 | 在星期域中,4#2 表示某月的第二个星期四。 |
标签:星期,20,指定,整数,分钟,Cron,表达式 From: https://www.cnblogs.com/hungryquiter/p/16972952.html