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

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

一 如何實現定時任務

1. 開啓定時任務

在啓動類上增長@EnableScheduling註解,開啓定時任務git

2. 定時任務方法

使用@Scheduled註解的方法就會被聲明成一個定時任務github

@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容器管理。redis

二 cron表達式詳解

在spring 4.x中已經不支持7個參數的cronin表達式了,要求必須是6個參數。cron表達式格式以下:spring

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

若是對cron表達式不是很熟悉,能夠網上找一下,有許多生產cron表達式的網站。Spring Task就簡單介紹到這了,使用起來很是方便,下一章將介紹Quartz的使用及將任務持久化存儲。數據庫


本文示例代碼已上傳至github,點個star支持一下!

Spring Boot系列教程目錄

spring-boot-route(一)Controller接收參數的幾種方式緩存

spring-boot-route(二)讀取配置文件的幾種方式微信

spring-boot-route(三)實現多文件上傳mybatis

spring-boot-route(四)全局異常處理spring-boot

spring-boot-route(五)整合Swagger生成接口文檔

spring-boot-route(六)整合JApiDocs生成接口文檔

spring-boot-route(七)整合jdbcTemplate操做數據庫

spring-boot-route(八)整合mybatis操做數據庫

spring-boot-route(九)整合JPA操做數據庫

spring-boot-route(十)多數據源切換

spring-boot-route(十一)數據庫配置信息加密

spring-boot-route(十二)整合redis作爲緩存

spring-boot-route(十三)整合RabbitMQ

spring-boot-route(十四)整合Kafka

spring-boot-route(十五)整合RocketMQ

spring-boot-route(十六)使用logback生產日誌文件

spring-boot-route(十七)使用aop記錄操做日誌

spring-boot-route(十八)spring-boot-adtuator監控應用

spring-boot-route(十九)spring-boot-admin監控服務

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

spring-boot-route(二十一)quartz實現動態定時任務

spring-boot-route(二十二)實現郵件發送功能

spring-boot-route(二十三)開發微信公衆號

這個系列的文章都是工做中頻繁用到的知識,學完這個系列,應付平常開發綽綽有餘。若是還想了解其餘內容,掃面下方二維碼告訴我,我會進一步完善這個系列的文章!

相關文章
相關標籤/搜索