Spring定时任务注解@Scheduled(cron="*****?")

时间:2022-06-20 07:52:07

任务调度框架:

Quartz ,SpringTask

Spring定时任务注解@Scheduled(cron="*****?")

“*”字符代表所有可能的值
因此,“*”在子表达式(月)里表示每个月的含义,“*”在子表达式(天(星期))表示星期的每一天


“/”字符用来指定数值的增量
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟
         在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样

“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值
当2个子表达式其中之一被指定了值以后,为了避免冲突,需要将另一个子表达式的值设为“?”

"-":表示范围,例如在分钟域使用5-20,表示从5分到二十分钟每分钟触发一次

",":表示列出枚举值

“L” 字符仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写
但是它在两个子表达式里的含义是不同的。
在天(月)子表达式中,“L”表示一个月的最后一天
在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT
如果在“L”前有具体的内容,它就具有其他的含义了
例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最一个星期五
注意:在使用“L”参数时,不要指定列表或范围,因为这会导致问题

"w":表示有效工作日.如果是星期六,就触发前一天,如果是星期日,就触发后一天,就近寻找原则  

"lw":表示某个月在最后一个工作日,及最后一个星期五

"#":用于确定每个月的第几个星期几,只能出现在DayofMonth域.例如4/2,就是第二个月的星期三 

字段   允许值   允许的特殊字符
秒       0-59        , - * /
分       0-59        , - * /
小时      0-23        , - * /
日期      1-31        , - * ? / L W C
月份      1-12 或者 JAN-DEC     , - * /
星期      1-7 或者 SUN-SAT      , - * ? / L C #
年(可选)       留空, 1970-2099       , - * /