java定時任務cron表達式每周執行一次的坑及解決

java定時任務cron表達式每周執行一次的坑

java springboot 利用schedule執行定時任務是很常用的功能,有一個很常用的網站就是在線Cron表達式生成器,但是在這個網站最近遇到一個坑。

我要每周四執行一次,我把我寫的表達式在這個網站驗證瞭,是可以的,你看最近10次執行時間,同時看一下我右下角的日歷,沒問題吧,實際上坑已經出現瞭。

在這個驗證前,我先在網上查瞭一次資料,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}。第一天是星期天

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: