你了解 Quartz 嗎?
Quartz 是一個(gè)完全由 Java 編寫的開源作業(yè)調(diào)度框架,為在 Java 應(yīng)用程序中進(jìn)行作業(yè)調(diào)度提供了簡單卻強(qiáng)大的機(jī)制。
Quartz 可以與 J2EE 與 J2SE 應(yīng)用程序相結(jié)合也可以單獨(dú)使用。
Quartz 允許程序開發(fā)人員根據(jù)時(shí)間的間隔來調(diào)度作業(yè)。
Quartz 實(shí)現(xiàn)了作業(yè)和觸發(fā)器的多對(duì)多的關(guān)系,還能把多個(gè)作業(yè)與不同的觸發(fā)器關(guān)聯(lián)。
Quartz 核心概念
我們需要明白 Quartz 的幾個(gè)核心概念,這樣理解起 Quartz 的原理就會(huì)變得簡單了。
- Job 表示一個(gè)工作,要執(zhí)行的具體內(nèi)容。此接口中只有一個(gè)方法,如下:
void execute(JobExecutionContext context)
- JobDetail 表示一個(gè)具體的可執(zhí)行的調(diào)度程序,Job 是這個(gè)可執(zhí)行程調(diào)度程序所要執(zhí)行的內(nèi)容,另外 JobDetail 還包含了這個(gè)任務(wù)調(diào)度的方案和策略。
- Trigger 代表一個(gè)調(diào)度參數(shù)的配置,什么時(shí)候去調(diào)。
- Scheduler 代表一個(gè)調(diào)度容器,一個(gè)調(diào)度容器中可以注冊(cè)多個(gè) JobDetail 和 Trigger。當(dāng) Trigger 與 JobDetail 組合,就可以被 Scheduler 容器調(diào)度了。
Quartz的運(yùn)行環(huán)境
- Quartz 可以運(yùn)行嵌入在另一個(gè)獨(dú)立式應(yīng)用程序。
- Quartz 可以在應(yīng)用程序服務(wù)器(或 servlet 容器)內(nèi)被實(shí)例化,并且參與 XA 事務(wù)。
- Quartz 可以作為一個(gè)獨(dú)立的程序運(yùn)行(其自己的 Java 虛擬機(jī)內(nèi)),可以通過 RMI 使用。
- Quartz 可以被實(shí)例化,作為獨(dú)立的項(xiàng)目集群(負(fù)載平衡和故障轉(zhuǎn)移功能),用于作業(yè)的執(zhí)行。
相關(guān)教程
《Java教程》
《Java面試問題 》
《Javascript教程》
官方文檔鏈接
http://www.quartz-scheduler.org/documentation/quartz-2.2.x/quick-start.html