cron表达式详解
Cron表达式是一种用于指定定时任务执行时间的字符串表达式。它由6个或7个字段组成,每个字段代表一个时间单位或一个时间段。下面是对Cron表达式的详细解释:
-
秒(可选):0-59之间的整数,表示每分钟的哪一秒执行任务。例如,
0
表示每分钟的第0秒执行任务。 -
分钟:0-59之间的整数,表示每小时的哪一分钟执行任务。例如,
30
表示每小时的第30分钟执行任务。 -
小时:0-23之间的整数,表示每天的哪个小时执行任务。例如,
12
表示每天的中午12点执行任务。 -
日期:1-31之间的整数,表示每月的哪一天执行任务。例如,
1
表示每月的第1天执行任务。 -
月份:1-12之间的整数,表示每年的哪个月执行任务。例如,
6
表示每年的6月执行任务。 -
星期(可选):1-7之间的整数或者英文缩写(SUN-SAT),表示每周的哪一天执行任务。例如,
7
或SAT
表示每周六执行任务。 -
年份(可选):1970年至2099年之间的整数,表示任务的执行年份。例如,
2022
表示2022年执行任务。
Cron表达式还支持一些特殊字符和符号:
-
星号(*):表示匹配该字段的所有值。例如,
*
在分钟字段中表示每分钟都执行任务。 -
问号(?):只能在日期字段和星期字段中使用,表示不指定具体的值。
-
斜线(/):用于指定时间间隔。例如,
0/5
在分钟字段中表示每5分钟执行任务。 -
逗号(,):用于指定多个值。例如,
1,3,5
表示匹配1、3和5。 -
连字符(-):用于指定一个范围。例如,
10-15
表示匹配10到15之间的值。 -
L:只能在日期字段和星期字段中使用,表示最后一个值。例如,
L
在日期字段中表示每月的最后一天。 -
W:只能在日期字段中使用,表示最近的工作日(周一至周五)。例如,
15W
在日期字段中表示最近的工作日,如果15号是周六,则匹配最近的周五(14号)。 -
#:只能在星期字段中使用,表示该月的第几个星期几。例如,
6#3
在星期字段中表示该月的第3个周六。
下面是一些示例Cron表达式:
0 0 12 * * ?
:每天中午12点执行任务。0 0/5 * * * ?
:每5分钟执行任务。0 15 10 ? * MON-FRI
:每周一至周五的上午10点15分执行任务。0 0 12 1/3 * ?
:每隔3天的中午12点执行任务。