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。
推薦閱讀:
- 關於@Scheduled註解的任務為什麼不執行的問題
- SpringBoot任務之定時任務相關知識總結
- 關於@Scheduled不執行的原因分析
- @Scheduled 如何讀取動態配置文件
- Java @Scheduled定時器用法解析