用過 Spring 的 @EnableScheduling 的都知道,有三種方式,即 @Scheduled 注解的 fixedRate(fixedRateString), fixedDelay(fixedDelayString), 以及 cron
這里討論 fixedRate 和 fixedDelay 參數
fixedRate 是有一個時刻表的概念,在任務啟動時,T1、T2、T3就已經排好了執行的時刻,比如1分、2分、3分,當T1的執行時間大於1分鍾時,就會造成T2晚點,當T1執行完時T2立即執行,
fixedDelay 比較簡單,表示上個任務結束,到下個任務開始的時間間隔。無論任務執行花費多少時間,兩個任務間的間隔始終是一致的。