Quartz作業排程實踐

2021-10-17 14:53:49 字數 2409 閱讀 1724

quartz的使用場景:

例如:每5秒對某個平台傳輸資料

quartz框架的一些基礎概念解釋:

scheduler 作業排程器。

ijob 作業介面,繼承並實現execute, 編寫執行的具體作業邏輯。

jobbuilder 根據設定,生成乙個詳細作業資訊(jobdetail)。

triggerbuilder 根據規則,生產對應的trigger

這裡有個注意點quartz包的版本必須要2.6.2,因為後面的版本以後也就是3開頭的stdschedule***ctory.getdefaultscheduler()返回值改了

1.job測試類

/// 

/// 無參作業

///

public

class

test1job

:ijob")

;}}public

class

test2job

:ijob ");}}

2.測試**

//從工廠中獲取乙個排程器例項化

ischeduler scheduler = stdschedule***ctory.

getdefaultscheduler()

; scheduler.

start()

;//開啟排程器

//第乙個例子無參作業建立

//建立乙個作業 -withidentity的引數(作業名稱,做業組)

//當你有不同型別的job時可以將相同型別的job放到乙個組裡,同乙個組裡的job可以使用相同的邏輯來處理

ijobdetail job1 = jobbuilder.

create

<

test1job

>()

//建立乙個作業

.withidentity

("jobname"

,"group").

build()

;// trigger 作為作業的定時管理工具,乙個 trigger 只能對應乙個作業例項,而乙個作業例項可對應多個trigger ;

//建立乙個觸發器 -withidentity的引數(觸發器名稱,觸發器組)

itrigger trigger1 = triggerbuilder.

create()

.withidentity

("mytrigger"

,"group1").

startnow()

//現在開始

.with******schedule

(x =

> x //觸發時間,5秒一次。

.withintervalinseconds(5

).repeatforever()

)//不間斷重複執行

.build()

; scheduler.

schedulejob

(job1, trigger1)

;//把作業,觸發器加入排程器。

//有參作業用傳引數usingjobdata

ijobdetail job2 = jobbuilder.

create

<

test2job

>()

.withidentity

("jobname1"

,"group").

usingjobdata

("testpara"

,"有參").

build()

;//withcronschedule("") 擁有強大的cron時間表示式,正常情況下with******schedule(x) 已經滿足大部分對日期設定的要求了。

// cron時間表示式 由7段構成:秒 分 時 日 月 星期 年(可選,一般情況下是沒有這段)

itrigger trigger2 = triggerbuilder.

create()

.withidentity

("mytrigger1"

,"group1").

startnow()

.withcronschedule

("0/5 * * * * ?"

)//時間表示式,5秒一次

.build()

; scheduler.

schedulejob

(job2, trigger2)

; //關閉排程器。

console.

readkey()

;

Quartz排程實踐

首先宣告乙個類繼承job介面,將來quartz會排程這個類的execute public class updateconfigurationtask implements job clientmanager.updateconfig catch exception ex 定義jobdetail,用以...

Quartz 作業排程

當你在應用程式需要作業排程的時候,使用quartz 作業排程可以解決你問題。步驟 2.做乙個類來管理各個job的排程,假設類名為quartzmanager summary description for quartzmanager public class quartzmanager 某個job p...

用Quartz實現作業排程

這個跟定時器差不多,可以用來按時需要出現的功能。job 是乙個介面,它只有乙個方法void execute jobexecutioncontext context 開發者實現該介面定義執行任務,jobexecutioncontext類提供了排程上下文的各種資訊。job執行時的資訊儲存在jobexec...