定時任務

關於定時任務

springboot支持定時任務:
在要定時執行的方法上加個@Scheduled OK了

形如:@Scheduled(cron = “0 0/5 * * * ?”)

cron表達式的規則

Cron表達式由6~7項組成,中間用空格分開。從左到右依次是: 秒、分、時、日、月、周幾、年(可省略)

Cron表達式的值可以是數字,也可以是以下符號:

“*”:所有值都匹配

“?”:無所謂,不關心,通常放在“周幾”裏

“,”:或者

“/”:增量值

“-”:區間

ps: cron表達式倒着看比較好理解意思;遇到像1月這樣的不足兩位數的情況,不用補成01

cron表達式舉例

* * * * ?:每分鐘(當秒爲0的時候)
0 * * * ?:每小時(當秒和分都爲0的時候)
0/5 * * * * ?:每5秒
5/15 * * * ?:每小時的5分、20分、35分、50分
0 9,13 * * ?:每天的9點和13點
0 8-10 * * ?:每天的8點、9點、10點
0/30 8-10 * * ?:每天的8點、8點半、9點、9點半、10點
0 9-17 * * MON-FRI :每週一到週五的9點、10點…直到17點(含)
0 0 25 12 ? :每年12月25日聖誕節的0點0分0秒(午夜)
30 10 * * ? 2016:2016年每天的10點半

@Scheduled(cron = “0 0/5 * * * ?”)
表示每隔五分鐘執行一次,0秒執行

@Scheduled(cron = “0 37 19 7 1 ?”)
表示1月7號的19:37:0執行

定時任務應用場景

定時向用戶推送消息;
定時運算數據;
定時清空緩存;
……

基於註解實現定時任務

demo

@Configuration      //1.主要用於標記配置類,兼備Component的效果。
@EnableScheduling   // 2.開啓定時任務
public class SaticScheduleTask {
    //3.添加定時任務
    @Scheduled(cron = "0/5 * * * * ?")
    //或直接指定時間間隔,例如:5秒
    //@Scheduled(fixedRate=5000)
    private void configureTasks() {
        System.err.println("執行靜態定時任務時間: " + LocalDateTime.now());
    }
}

運行效果截圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章