spring自帶的定時任務框架的有點:簡單,拆箱即用
spring自帶的定時任務框架的缺點:
- 不支持集群:為避免重復執行的問題
- 不支持生命周期統一管理:不重啟服務情況下關閉,啟動任務
- 不支持分片任務:處理有序數據時,多機器分片執行任務處理不同數據
- 不支持動態調整:不重啟服務的情況下修改任務參數
- 無報警機制:任務失敗之后沒有報警機制
- 不支持失敗重試:出現異常后任務中介,不能根據執行狀態控制任務重新執行
- 任務數據統計難以統計:任務數據量大時,對於任務執行情況無法高效的統計執行情況
一些單機任務的情況比較適合,因為拆箱即用,但是我還是推薦國產的輕量級的定時任務框架xxl-job
使用方法:
1 //編寫定時任務 每五秒輸出一次 2 @Scheduled(cron = "*/5 * * * * ?") 3 public void test(){ 4 System.out.println("Hell啊,樹哥"); 5 }
關於觸發器corn的配置:
1 每隔5秒執行一次任務: "*/5 * * * * ?" 2 3 每隔1分鍾執行一次任務: "0 */1 * * * ?" 4 5 每天23點執行一次任務: "0 0 23 * * ?" 6 7 每天凌晨1點執行一次任務: "0 0 1 * * ?" 8 9 每月1號凌晨1點執行一次任務: "0 0 1 1 * ?" 10 11 每月1號凌晨2點執行一次任務: "0 0 2 1 * ? *" 12 13 每月最后一天23點執行一次任務: "0 0 23 L * ?" 14 15 每周星期天凌晨1點執行一次任務: "0 0 1 ? * L" 16 17 26分、29分、33分各執行一次任務: "0 26,29,33 * * * ?" 18 19 每天的0點、13點、18點、21點各執行一次任務: "0 0 0,13,18,21 * * ?" 20 21 周一到周五每天上午10:15執行一次任務: "0 15 10 ? * MON-FRI" 22 23 2020-2021年的每個月的最后一個星期五上午10:15執行一次任務: "0 15 10 ? 6L 2020-2021" 24 25 #在線配置 26 https://qqe2.com/cron