運(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)),可以通過(guò)RMI使用
-
Quartz 可以被實(shí)例化,作為獨(dú)立的項(xiàng)目集群(負(fù)載平衡和故障轉(zhuǎn)移功能),用于作業(yè)的執(zhí)行
作業(yè)調(diào)度
作業(yè)被安排在一個(gè)給定的觸發(fā)時(shí)運(yùn)行。觸發(fā)器可以使用以下指令的接近任何組合來(lái)創(chuàng)建:
-
在一天中的某個(gè)時(shí)間(到毫秒)
-
在一周的某幾天
-
在每月的某一天
-
在一年中的某些日期
-
不在注冊(cè)的日歷中列出的特定日期(如商業(yè)節(jié)假日除外)
-
重復(fù)特定次數(shù)
-
重復(fù)進(jìn)行,直到一個(gè)特定的時(shí)間/日期
-
無(wú)限重復(fù)
-
重復(fù)的延遲時(shí)間間隔
作業(yè)是由其創(chuàng)建者賦予的名字,也可以組織成命名組。觸發(fā)器也可以給予名稱和放置在組中,以方便地將它們調(diào)度內(nèi)組織。作業(yè)可以被添加到所述調(diào)度器一次,而是具有多個(gè)觸發(fā)器注冊(cè)。在企業(yè)Java環(huán)境中,作業(yè)可以執(zhí)行自己的工作作為分布式(XA)事務(wù)的一部分。
作業(yè)執(zhí)行
-
作業(yè)可以實(shí)現(xiàn)簡(jiǎn)單的作業(yè)接口,為作業(yè)執(zhí)行工作的任何Java類。
-
Job類的實(shí)例可以通過(guò)Quartz被實(shí)例化,或者通過(guò)應(yīng)用程序框架。
-
當(dāng)觸發(fā)時(shí),調(diào)度通知實(shí)現(xiàn)JobListener和TriggerListener接口零個(gè)或多個(gè)Java對(duì)象(監(jiān)聽器可以是簡(jiǎn)單的Java對(duì)象,或EJB,JMS或發(fā)布者等)。這些監(jiān)聽器在作業(yè)已經(jīng)執(zhí)行之后通知。
-
由于作業(yè)完成后返回JobCompletionCode,它通知的成功或失敗的調(diào)度。JobCompletionCode還可以指示的基礎(chǔ)上,成功的話就采取行動(dòng)調(diào)度/失敗的代碼 - 如立即重新執(zhí)行作業(yè)。
作業(yè)持久性
-
Quartz的設(shè)計(jì)包括可被實(shí)現(xiàn)以提供的作業(yè)存儲(chǔ)各種機(jī)制一個(gè)作業(yè)存儲(chǔ)接口
-
通過(guò)使用包含的JDBCJobStore,所有的作業(yè)和觸發(fā)器配置為“非揮發(fā)性”都存儲(chǔ)在通過(guò)JDBC關(guān)系數(shù)據(jù)庫(kù)。
-
通過(guò)使用包含的RAMJobStore,所有的作業(yè)和觸發(fā)器存儲(chǔ)在RAM,因此不計(jì)劃執(zhí)行仍然存在 - 但這是無(wú)需使用外部數(shù)據(jù)庫(kù)的優(yōu)勢(shì)。
事務(wù)
-
可以參與JTA事務(wù),通過(guò)使用JobStoreCMT(JDBCJobStore的子類)。
-
Quartz可以管理JTA事務(wù)(開始并提交它們)周圍作業(yè)的執(zhí)行,從而使作業(yè)執(zhí)行的工作自動(dòng)將JTA事務(wù)中發(fā)生。
集群
-
故障切換
-
負(fù)載均衡
-
Quartz的內(nèi)置的群集功能,通過(guò)JDBCJobStore(如上所述)依靠數(shù)據(jù)庫(kù)持久
-
Terracotta擴(kuò)展Quartz提供集群功能,而不需要一個(gè)支持?jǐn)?shù)據(jù)庫(kù)
監(jiān)聽器和插件
-
應(yīng)用程序可以捕捉事件的調(diào)度監(jiān)控或通過(guò)實(shí)現(xiàn)一個(gè)或多個(gè)監(jiān)聽器接口控制工作/觸發(fā)行為。
-
插件機(jī)制,可以用來(lái)添加功能,Quartz讓作業(yè)執(zhí)行過(guò)程中或工作負(fù)載和觸發(fā)定義的歷史不受限在一個(gè)文件中。
-
附帶了一些“工廠建有”插件和監(jiān)聽器。