0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点# SpringBoot使用@Scheduled创建定时任务

/** 系统启动后延迟两分钟执行之后每隔一分钟执行一次 */
@Scheduled(fixedDelay = 60 * 1000, initialDelay = 2 * 60 * 1000)
public void syncInfo() {
if (mqttConnectService.isConnected()) {
log.info("开始同步设备");
} else {
log.warn("等待");
return;
}
}

fixedRate

fixedRate属性是上一个调用开始后再次调用的延时(不用等待上一次调用完成),这样就会存在重复执行的问题,不推荐使用。

fixedDelay

fixedDelay属性的效果与上面的fixedRate则是相反的,配置了该属性后会等到方法执行完成后延迟配置的时间再次执行该方法。

initialDelay

initialDelay属性跟上面的fixedDelay、fixedRate有着密切的关系,该属性的作用是第一次执行延迟时间,只是做延迟的设定,并不会控制其他逻辑,所以要配合fixedDelay或者fixedRate来使用。

cron属性

cron属性值是一个String类型的时间表达式;

举几个例子如下:

“0 0 12 * * ?”
每天中午十二点触发

“0 30 10 ? * *”
每天早上10:30触发

“0 15 10 * * ?”
每天早上10:15触发

“0 15 10 * * ? *”
每天早上10:15触发

“0 15 10 * * ? 2018”
2018年的每天早上10:15触发

“0 * 14 * * ?”
每天从下午2点开始到2点59分每分钟一次触发

“0 0/5 14 * * ?”
每天从下午2点开始到2:55分结束每5分钟一次触发

“0 0/5 14,18 * * ?”
每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发

“0 0-5 14 * * ?”
每天14:00至14:05每分钟一次触发

“0 10,44 14 ? 3 WED”
三月的每周三的14:10和14:44触发

“0 15 10 ? * MON-FRI”
每个周一、周二、周三、周四、周五的10:15触发


每隔5秒执行一次:*/5 * * * * ?

每隔1分钟执行一次:0 */1 * * * ?

每天23点执行一次:0 0 23 * * ?

每天凌晨1点执行一次:0 0 1 * * ?

凌晨1点执行一次:0 0 1 1 * ??

每月最后一天23点执行一次:0 0 23 L * ?* ?

每周星期六凌晨1点实行一次:0 0 1 ? * LL

在26分、29分、33分执行一次:0 26,29,33 * * * ?26,29,33 * * * ?

每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?0 0,13,18,21 * * ?

仅供参考!


举报

相关推荐

0 条评论