无法运行

导航

@Scheduled(cron = “* * * * * * *“ )详解

Spring Framework 对于定时任务提供了支持,下面来对@Scheduled定时器介绍一下。

想要使用@Scheduled定时器,首先需要在启动类前添加@EnableScheduling注解,从而启动定时器。

@Scheduled一共有8中配置,参数如下:

参数 参数说明 示例
cron cron表达式是一个字符串,常用于各种定时任务解决方案 cron ="0/30 * * * * ?"
zone zone用来解析cron表达式中的时区,默认取服务器所在时区。 GMT-12:00
fixedDelay 上一次执行完毕时间点到下一次执行开始时间点之间的时间,单位:毫秒 5000
fixedDelayString 上一次执行完毕时间点到下一次执行开始时间点之间的时间,使用字符串的形式 "5000"
fixedRate 上一次执行开始时间点经过多长时间再次执行,单位:毫秒 5000
fixedRateString 上一次执行开始时间点经过多长时间再次执行,使用字符串的形式 "5000"
initialDelay 第一次执行任务前延误时间,单位:毫秒 2000
initialDelayString 第一次执行任务前延误时间,使用字符串的形式 "2000"

cron表达式

1、cron表达式格式

{秒} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}

2、cron表达式占位符解释

{秒} {分钟}:允许范围:0-59,不允许为空值。

如果值不合法,会抛出SchedulerException异常

【注】

"*":代表每隔1秒钟触发

",":代表在指定的秒数触发,例如,"1,5,20"表示1秒,5秒和20秒时触发

"-":代表在指定的范围内触发,例如,"15-20"表示从15秒开始触发到20秒结束触发,每隔1秒触发1次。

"/":代表指定数值的增量触发,例如,在秒域中使用"10/15"表示每分钟内第10秒触发,后续每隔15秒触发一次。注意:这种间隔循环只在每分钟内执行,所以在第55秒执行一次后,中断每15秒的间隔循环,等到下一分钟的第10秒再次开始执行。

{小时}:允许值范围:0-23,不允许为空值

如果值不合法,会抛出SchedulerException异常,占位符和秒数一样。

{日期}:允许值范围:1-31,不允许为空值

如果值不合法,会抛出SchedulerException异常。

{星期}:允许值范围:1-7,1代表星期天,一个星期的第一天,不允许为空值

如果值不合法,会抛出SchedulerException异常。

{年份}:允许值范围:1970-2099,允许为空

如果值不合法,会抛出SchedulerException异常。

【注】由于{日期}和{星期}互斥,所以其中之一被定值以后,必须对另一个设"?"

3、例子

"30 * * * * ?" 每半分钟触发一次

"30 10 * * * ?" 每小时的10分30秒触发任务

"30 10 1 * * ?" 每天的1点10分30秒触发任务

"0 0 10,14,16 * * ?" 每天的10点、14点和16点触发任务

“0 */1 * * * ?” 每一分钟执行一次任务

 摘自链接:https://blog.csdn.net/qq_41278110/article/details/120666994

posted on 2022-04-06 15:54  无法运行  阅读(315)  评论(0编辑  收藏  举报