/** 系统启动后延迟两分钟执行之后每隔一分钟执行一次 */
(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 ? * *” “0 15 10 * * ?” “0 15 10 * * ? *” “0 15 10 * * ? 2018” “0 * 14 * * ?” “0 0/5 14 * * ?” “0 0/5 14,18 * * ?” “0 0-5 14 * * ?” “0 10,44 14 ? 3 WED” “0 15 10 ? * MON-FRI” 每隔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 * * ? 仅供参考!
每天中午十二点触发
每天早上10:30触发
每天早上10:15触发
每天早上10:15触发
2018年的每天早上10:15触发
每天从下午2点开始到2点59分每分钟一次触发
每天从下午2点开始到2:55分结束每5分钟一次触发
每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
每天14:00至14:05每分钟一次触发
三月的每周三的14:10和14:44触发
每个周一、周二、周三、周四、周五的10:15触发