java定时任务cron表达式每周执行一次的坑及解决
java定时任务cron表达式每周执行一次的坑
java SpringBoot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑。
我要每周四执行一次,我把我写的表达式在这个网站验证了,是可以的,你看最近10次执行时间,同时看一下我右下角的日历,没问题吧,实际上坑已经出现了。
在这个验证前,我先在网上查了一次资料,1周日,2是周一,那就周四就是5,每个周四的1点执行一次 表达式是@Scheduled(cron = "0 0 1 ? * 5"),觉得就是这样了,结果周四没执行,周五才执行。
@Scheduled(cron = "0 0 1 ? * 5")
经过验证,每周几点执行一次的话,这个周,周一就是1,周二就是2,千万记得,不要掉坑了。
每个周四的1点执行一次 正确的表达式是@Scheduled(cron = "0 0 1 ? * 4")
cron表达式指定每周几调度
每周二零点调度
0 0 0 ? * 3 *
注意,星期的范围{1, 2, 3, 4, 5, 6, 7}。第一天是星期天
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关文章