定時任務元件Quartz

2021-10-01 19:48:25 字數 3388 閱讀 3467

quartz是job scheduling(作業排程)領域的乙個開源專案,quartz既可以單獨使用也可以跟spring框架整合使用,在實際開發中一般會使用後者。使用quartz可以開發乙個或者多個定時任務,每個定時任務可以單獨指定執行的時間,例如每隔1小時執行一次、每個月第一天上午10點執行一次、每個月最後一天下午5點執行一次等。

使用步驟

<1>引入依賴

cn.itcast<

/groupid>

health_inte***ce<

/artifactid>

1.0-snapshot<

/version>

<

/dependency>

org.quartz-scheduler<

/groupid>

quartz<

/artifactid>

<

/dependency>

org.quartz-scheduler<

/groupid>

quartz-jobs<

/artifactid>

<

/dependency>

<

/dependencies>

<2>配置檔案spring_job

第一種:xml配置

提示更改:自定義job,目標方法

!--開啟spring註解使用--

>

<

/context:annotation-config>

<

!--註冊自定義job--

>

"job"

class

="*****.job"

>

<

/bean>

"jobdetail"

class

="org.springframework.scheduling.quartz.methodinvokingjobdetailfactorybean"

>

<

!-- 注入目標物件 --

>

"targetobject" ref=

"job"

/>

<

!-- 注入目標方法 --

>

"targetmethod" value=

"*****"

/>

<

/bean>

<

!-- 註冊乙個觸發器,指定任務觸發的時間 --

>

"mytrigger"

class

="org.springframework.scheduling.quartz.crontrigge***ctorybean"

>

<

!-- 注入jobdetail --

>

"jobdetail" ref=

"jobdetail"

/>

<

!-- 指定觸發的時間,基於cron表示式 --

>

"cronexpression"

>

0/10***

*?<

/value>

<

/property>

<

/bean>

<

!-- 註冊乙個統一的排程工廠,通過這個排程工廠排程任務 --

>

"scheduler"

class

="org.springframework.scheduling.quartz.schedule***ctorybean"

>

<

!-- 注入多個觸發器 --

>

"triggers"

>

"mytrigger"

/>

<

/list>

<

/property>

<

/bean>

<

/beans>第二種

//註解配置

提示更改:掃瞄包

!--開啟spring註解使用--

>

<

/context:annotation-config>

package

="***.jobs"

>

<

/context:component-scan>

<

!-- 配置處理定時任務的執行緒池 --

>

"executor" pool-size=

"10"

/>

<

!-- 配置處理 非同步定時任務的 執行緒池 --

>

"scheduler" pool-size=

"10"

/>

<

!-- 啟用annotation方式 --

>

"scheduler" executor=

"executor" proxy-target-

class

="true"

/>

<

/beans>註解配合使用

job方法上配置註解@scheduled

@scheduled

(cron =

"表示式"

)public

void

job(

)

<3>cron表示式生成器

quartz定時任務

此檔案被包含在spring配置檔案中,其中 引數 的值遵循如下規則 0 0 12 每天中午12點觸發 0 15 10 每天上午10 15觸發 0 15 10 每天上午10 15觸發 0 15 10 每天上午10 15觸發 0 15 10 2005 2005年的每天上午10 15觸發 0 14 在每天...

Quartz定時任務

排程器 負責時間監控,如果任務到了指定時間則呼叫器開始工作.觸發器 當排程器執行任務時,會呼叫觸發器開啟執行緒完成任務.job 定時任務統稱.jobdetail 定時任務的具體的細節 呼叫過程 新建立定時任務.將任務交給排程器管理 呼叫器負責監控時間,當到了指定的時間後.呼叫觸發器開啟新的執行緒去完...

quartz定時任務

以下 案例是基於spring boot框架。定義乙個定時任務,我們需要明白這個定時任務是要我們做什麼,什麼時候做。1.配置定時時間。在yml配置檔案中配置定時任務的時間。test singledef syncfilecron 0 0 7 時間配置依次是秒分時日月年,具體配置這裡不就詳細解釋了。2.配...