1. 程式人生 > 實用技巧 >spring-boot-route(二十)Spring Task實現簡單定時任務

spring-boot-route(二十)Spring Task實現簡單定時任務

Spring Task是Spring 3.0自帶的定時任務,可以將它看作成一個輕量級的Quartz,功能雖然沒有Quartz那樣強大,但是使用起來非常簡單,無需增加額外的依賴,可直接上手使用。

一 如何實現定時任務

1. 開啟定時任務

在啟動類上增加@EnableScheduling註解,開啟定時任務

2. 定時任務方法

使用@Scheduled註解的方法就會被宣告成一個定時任務

@Slf4j
@Component
public class ScheduledTest {

    @Scheduled(cron = "*/1 * * * * ?")
    public void test1(){
        log.info("這個定時任務1----");
    }
    @Scheduled(cron = "*/1 * * * * ?")
    public void test2(){
        log.info("這個定時任務2----");
    }
    @Scheduled(cron = "*/1 * * * * ?")
    public void test3(){
        log.info("這個定時任務3----");
    }
}

3. 註冊bean

使用@Component將這個定時任務類註冊成一個bean元件,交給Spring容器管理。

二 cron表示式詳解

在spring 4.x中已經不支援7個引數的cronin表示式了,要求必須是6個引數。cron表示式格式如下:

{秒} {分} {時} {日期(具體哪天)} {月} {星期}
  • 秒:必填項,允許的值範圍是0-59,支援的特殊符號包括, - * /,表示特定的某一秒才會觸發任務,-表示一段時間內會觸發任務,*表示每一秒都會觸發,/表示從哪一個時刻開始,每隔多長時間觸發一次任務。
  • 分:必填項,允許的值範圍是0-59,支援的特殊符號和秒一樣,含義類推
  • 時:必填項,允許的值範圍是0-23,支援的特殊符號和秒一樣,含義類推
  • 日期:必填項,允許的值範圍是1-31,支援的特殊符號相比秒多了?,表示與{星期}互斥,即意味著若明確指定{星期}觸發,則表示{日期}無意義,以免引起衝突和混亂。
  • 月:必填項,允許的值範圍是1-12(JAN-DEC),支援的特殊符號與秒一樣,含義類推
  • 星期:必填項,允許值範圍是1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此類推,7代表星期六,支援的符號相比秒多了?,表達的含義是與{日期}互斥,即意味著若明確指定{日期}觸發,則表示{星期}無意義。

如果對cron表示式不是很熟悉,可以網上找一下,有許多生產cron表示式的網站。Spring Task就簡單介紹到這了,使用起來非常方便,下一章將介紹Quartz的使用及將任務持久化儲存。

此是spring-boot-route系列的第二十篇文章,這個系列的文章都比較簡單,主要目的就是為了幫助初次接觸Spring Boot 的同學有一個系統的認識。本文已收錄至我的github,歡迎各位小夥伴star

githubhttps://github.com/binzh303/spring-boot-route

點關注、不迷路

如果覺得文章不錯,歡迎關注點贊收藏,你們的支援是我創作的動力,感謝大家。

如果文章寫的有問題,請不要吝惜文筆,歡迎留言指出,我會及時核查修改。

如果你還想更加深入的瞭解我,可以微信搜尋「Java旅途」進行關注。回覆「1024」即可獲得學習視訊及精美電子書。每天7:30準時推送技術文章,讓你的上班路不在孤獨,而且每月還有送書活動,助你提升硬實力!