java定时任务cron表达式每周执行一次的坑及解决

java定时任务cron表达式每周执行一次的坑

java springboot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑。

我要每周四执行一次,我把我写的表达式在这个网站验证了,是可以的,你看最近10次执行时间,同时看一下我右下角的日历,没问题吧,实际上坑已经出现了。

java定时任务cron表达式每周执行一次的坑及解决_第1张图片

在这个验证前,我先在网上查了一次资料,1周日,2是周一,那就周四就是5,每个周四的1点执行一次 表达式是@Scheduled(cron = "0 0 1 ? * 5"),觉得就是这样了,结果周四没执行,周五才执行。

   /**
     * 保存司机统计的数据
     * 每个周四的1点执行一次
     */
    @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}。第一天是星期天

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(java定时任务cron表达式每周执行一次的坑及解决)