SpringBoot整合Quartz定時框架

2021-10-13 07:18:59 字數 3153 閱讀 6288

欄位名

允許的值

允許的特殊字元

秒0-59

, – * /

分0-59

, – * /

時0-23

, – * /

日1-31

, – * / l w c

月1-12 or jan-dec

, – * /

周1-7 or sun-sat

, – * ? / l c # mon fri

年(可選字段)

empty, 1970-2099

, – * /

允許的特殊字元:

* 字元代表:代表所有可能的值。因此,「*」在month中表示每個月,在day-of-month中表示每天,在hours表示每小時

「,」字元:指定數個值。例如:在minutes子表示式中,「5,20」表示在5分鐘和20分鐘觸發。

「-」字元:指定乙個值的範圍

「/」字元:指定乙個值的增加幅度。n/m表示從n開始,每次增加m。例如:在minutes子表示式中,「0/15」表示從0分鐘開始,每15分鐘執行一次。「3/20"表示從第三分鐘開始,每20分鐘執行一次。和"3,23,43」(表示第3,23,43分鐘觸發)的含義一樣。

「l」字元:用在日表示乙個月中的最後一天,用在周表示該月最後乙個星期x

「w」字元:指定離給定日期最近的工作日(周一到周五)

「#」字元:表示該月第幾個周x。6#3表示該月第3個周五

? 字元:用在day-of-month和day-of-week中,指「沒有具體的值」。當兩個子表示式其中乙個被指定了值以後,為了避免衝突,需要將另外乙個的值設為「?」。例如:想在每月20日觸發排程,不管20號是星期幾,只能用如下寫法:0 0 0 20 * ?,其中最後以為只能用「?」,而不能用「*」。

c:該字元只在日期和星期欄位中使用,代表「calendar」的意思。它的意思是計畫所關聯的日期,如果日期沒有被關聯,則相當於日曆中所有日期。例如5c在日期欄位中就相當於日曆5日以後的第一天。1c在星期欄位中相當於星期日後的第一天。

cron表示式對特殊字元的大小寫不敏感,對代表星期的縮寫英文大小寫也不敏感。

cron表示式範例例:

1. 每隔5秒執行一次:*/5 * * * * ?

2. 每隔1分鐘執行一次:0 */1 * * * ?

3. 每天23點執行一次:0 0 23 * * ?

4. 每天凌晨1點執行一次:0 0 1 * * ?

5. 每月1號凌晨1點執行一次:0 0 1 1 * ?

6. 每月最後一天23點執行一次:0 0 23 l * ?

7. 每週星期天凌晨1點執行一次:0 0 1 ? * l

8. 在26分、29分、33分執行一次:0 26,29,33 * * * ?

9. 每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?

>

>

org.quartz-schedulergroupid

>

>

quartzartifactid

>

>

2.2.1version

>

>

>

>

slf4j-apiartifactid

>

>

org.slf4jgroupid

>

exclusion

>

exclusions

>

dependency

>

>

>

org.springframeworkgroupid

>

>

spring-context-supportartifactid

>

dependency

>

>

>

org.springframeworkgroupid

>

>

spring-txartifactid

>

dependency

>

public

class

myquartz

implements

job}

@configuration

public

class

quartzconfig

/** * 建立scheduler物件

* 這裡我們根據自己的需求可以選擇使用 ******trigge***ctorybean物件或者 crontrigge***ctorybean物件作為引數

* @return 程式排程工廠

*/@bean

public schedule***ctorybean schedule***ctorybean

(crontrigge***ctorybean crontrigge***ctorybean)

/** * 建立 trigger 物件

* 和crontrigge***ctorybean()方法類似、基於簡單的時間排程規則

* @param jobdetailfactorybean

* @return 基於排程間隔時間

*/@bean

public ******trigge***ctorybean ******trigge***ctorybean

(jobdetailfactorybean jobdetailfactorybean)

/** * 建立 trigger 物件

* 和******trigge***ctorybean()方法類似、基於cron表示式、可以滿足複雜的時間排程規則

* @param jobdetailfactorybean

* @return 基於時間刻度(可以設定具體時間)

*/@bean

public crontrigge***ctorybean crontrigge***ctorybean

(jobdetailfactorybean jobdetailfactorybean)

}

@enablescheduling

public

class

}

Spring boot定時任務及整合Quartz

各種企業應用幾乎都會用到任務排程的需求,比如論壇每天凌晨統計使用者的 積分,每隔半個小時生成精華文章 spring boot中使用定時任務 spring boot中使用定時任務只要使用兩個註解 enablescheduling scheduled 在spring boot的啟動類上新增 enable...

springBoot整合dubbo整合專案

傳統spring 整合dubbo,需要繁瑣的編寫一堆堆的 xml 配置檔案 而springboot整合dubbo後,不在需要寫 xml,通過jar包引用,完 成整合,通過註解的形式完成配置。提高我們的開發效率 目錄結構 1 服務層生產者開發 hs ldm server service 1.1新增du...

SpringBoot整合系列 整合Swagger2

io.springfox springfox swagger2 2.7.0 io.springfox springfox swagger ui 2.7.0 一般無配置項,必要時可以新增自定義配置項,在配置類中讀取 swagger2的配置內容僅僅就是需要建立乙個docket例項 configurati...