Spring定时任务注解标签-- @Scheduled之cron表达式

来源:互联网 发布:ik hr人力资源软件 编辑:程序博客网 时间:2024/06/09 22:25

1.cron表达式

{} {} {} {} {} {} {}(可选,留空)

1-1  cron表达式中域的范围和可能出现的特殊符号

范围

特殊字符

是否必须

含义

例子

0-59

, - * /

Y

seconds表示指定的秒数触发定时任务

"0,3"表示0秒和3秒触发

0-59

, - * /

Y

minutes表示指定的分钟触发定时任务

"0-3"表示0分钟到3分钟每分钟都触发

0-23

, - * /

Y

hours表示指定的小时触发定时任务

"3-15/2"表示上午3点到下午3点每隔2个小时触发

1-31(可以写0,但不会生效)

, - * / ?

Y

daysOfMonth表示指定的日期触发定时任务

"1"表示1号触发

1-12JAN-DEC

, - * /

Y

months表示指定的月份触发定时任务

"1-4,12"表示1月到4月以及12月触发

0-7(07都表示周日)SUN-SAT

, - * / ?

Y

daysOfWeek表示指定的星期触发定时任务

"6,7"表示周六日触发

1970-2099

, - * /

N

years表示指定的年份触发定时任务

"2017"表示年份为2017触发


1-2  cron表达式中可能出现的特殊符号含义

特殊字符

含义

例子

,

表示枚举多个值,这些值之间是""的关系

例如在月份上使用"1-3,10,12"表示1月到3月,10月,12月都触发

-

表示范围

例如在分域上使用5-10表示从5分钟到10分钟每分钟触发一次

*

匹配该域的任意值

例如在日域上使用"*",则表示每天都触发该定时任务

/

表示起始时间触发一次,然后每隔固定时间触发一次

例如在分钟域使用"10/2"表示从10分钟开始每隔2分钟触发一次,直到58分钟;也可以和字符"-"连用,例如在分钟域使用"10-30/2"表示从10分钟开始每隔2分钟触发一次,直到30分钟

?

只能在日和周域使用,表示非明确的值,实际作用等同"*",即匹配任意值

一般在日和周上会出现一次,当然,如果你对日和周两个域都使用"?"或者都使用其他值也没什么问题

注意,1月到12月可以用对应的英文缩写JAN-DEC代替,周日到周六可以用对应的英文缩写SUN-SAT代替。但是,周日的缩写SUN只会被替换为0,因此在cron表达式的周域,我们可以写6-7,却不能写SAT-SUN

原创粉丝点击