Spring Boot是很優秀的框架,它的出現簡化了新Spring應用的初始搭建以及開發過程,大大減少了代碼量,目前已被大多數企業認可和使用。這個專欄將對Spring Boot框架從淺入深,從實戰到進階,不但我們要懂得如何去使用,還要去剖析框架源碼,學習其優秀的設計思想。
彙總目錄鏈接:【Spring Boot實戰與進階】學習目錄
1、cron 表達式
格式: [秒] [分] [小時] [日] [月] [周] [年]
key | 釋義 |
---|---|
秒 | (0~59) |
分鐘 | (0~59) |
小時 | (0~23) |
天 | (0~31) |
月 | (0~11) |
星期 | (1~7,SUN,MON,TUE,WED,THU,FRI,SAT) |
年 | (1970-2099) |
2、特殊字符的含義
key | 釋義 |
---|---|
* | 代表所有可能得值,在(月)中表示每個月,在(天)中表示一星期的每一天 |
/ | 代表指定數值的增量,0/15在(分鐘)中表示從第0分鐘開始,每15分鐘 |
? | 僅被用於天(月)和天(星期),表示不指定值,當這兩個其中之一被指定了值之後,爲了避免衝突,需要將另一個表達式的值設定爲"?" |
L | 僅被用於天(月)和天(星期),是單詞"Last"的縮寫, 在天(月)中表示一個月的最後一天,在天(星期)中表示一個星期的最後一天,也就是週六 |
- | 表示一個範圍 |
, | 表示一個列表值 |
3、舉例
key | 釋義 |
---|---|
0 0 6 * * ? | 每天6點觸發 |
0 30 6 * * ? | 每天6點30分觸發 |
0 30 6 * * ? 2019 | 2019年每天6點30觸發 |
0 10/15 6 * * ? | 每天6點的 10分,25分,40分,55分這幾個時間點執行 |
0 * 9 * * ? | 每天9點到9點59分每分觸發 |
0 0/5 9 * * ? | 每天9點到9點59分(整點開始,每隔5分觸發) |
0 0/5 9,10 * * ? | 每天9點到10點59分(整點開始,每隔5分觸發) |
0 0-5 9 * * ? | 每天9點到9點05分每分觸發 |
0 15 8 ? 11 MON-FRI | 從週一到週五每天8點15分觸發 |
0 0 18 15 * ? | 每月15號18點觸發 |
0 0 18 L * ? | 每月最後一天的18點觸發 |
0 30 6 ? * 1 | 每週星期天,6點30分觸發 |
0 30 6 ? * 6L | 每月最後一週的星期五的6點30分觸發 |
0 10 3 ? * 1#3 | 每個月的第三個星期天觸發,#號只能出現在星期的位置 |
0 14 13 20 5 ? | 每年的5月20號 13點14分觸發 |
4、Spring Boot項目中如何使用
SpringBoot的啓動類上添加@EnableScheduling,此註解的作用是發現註解@Scheduled的任務並後臺執行。(或者添加在定時任務類上也可以)
@SpringBootApplication
@EnableScheduling
public class BootdemoApplication {
public static void main(String[] args) {
SpringApplication.run(BootdemoApplication.class, args);
}
}
5、ScheduleTask 定時任務測試類
@Component
public class ScheduleTask {
// 每隔10秒執行一次
@Scheduled(cron = "0/10 * * * * ?")
public void print() {
System.out.println("每隔10秒執行一次:" + new Date());
}
}