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