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.配...