Quartz特點:
?? Quartz能嵌入到任何獨立的應用中運行。
?? Quartz能在應用服務器或者Servlet容器中實例化,并且能夠參與XA事務。
?? Quartz能夠以獨立的方式運行(在它自己的Java虛擬機中),可以通過RMI使用Quartz。
?? Quartz可以被實例化為獨立程序的集群(有負載均衡和容錯能力)。
Job Scheduling(任務日程安排)
任務在給定的觸發(fā)器(Trigger)觸發(fā)時執(zhí)行。觸發(fā)器可以通過幾乎以下所有形式的組合方式進行創(chuàng)建:
?? 在一天中的任意時刻(可以精確到毫秒)。
?? 一周中特定的一些天。
?? 一個月中特定的一些天。
?? 一年中特定的一些天
?? 不在日歷列表中注冊的一些天(比如節(jié)假日)。
?? 循環(huán)特定的次數(shù)。
?? 循環(huán)到特定的時間。
?? 無限循環(huán)。
?? 按照一定的時間間隔循環(huán)。
Job Execution(任務執(zhí)行)
• 任務是任何實現(xiàn)簡單Job接口的Java 類,這樣開發(fā)者能夠執(zhí)行任何完成他們工作的任務。
• 任務類的實例可以由Quartz實例化,也可以由你的程序框架實例化。
當觸發(fā)器被觸發(fā)時,日程管理器將會通知某個或者多個實現(xiàn)了JobListener 或TriggerListener的對象(監(jiān)聽器可以是簡單的Java對象,或者EJBs,或者JMS消息發(fā)布器,等等)。這些監(jiān)聽器在任務執(zhí)行完畢后也會接到通知。
• 任務被完成后,他們會返回一個“任務完成碼(JobCompletionCode)”,這個“任務完成碼”告知日程管理器任務執(zhí)行的結果是成功還是失敗。日程管理器會根據(jù)成功或者失敗碼來采取措施,比如:立即重新執(zhí)行任務。
Job Persistence(任務持久化)
• Quartz設計中包括了一個JobStore接口,這樣,實現(xiàn)這個接口的Job類可以以多種機制實現(xiàn)Job的存儲。
• 通過使用JDBCJobStore,所有的Jobs和Triggers被配置為“non-volatile”(不輕快)的方式。即,通過JDBC存儲在關系數(shù)據(jù)庫中。
• 通過使用RAMJobStore,所有Jobs和Triggers被存儲在RAM。因此,在程序執(zhí)行中沒有被持久化,但這種方式的優(yōu)點就是不需要外部數(shù)據(jù)庫。
Transactions(事務)
• Quartz通過JobStoreCMT(JDBCJobStore的一個子類)可參與JTA事務。
• Quartz可以管理JTA事務(開始或者提交事務)。
Clustering(集群)
• Fail-over.(容錯)
• Load balancing.(負載均衡)
Listeners & Plug-Ins(監(jiān)聽器及插件)
• 應用可以通過實現(xiàn)一個或者多個監(jiān)聽器接口來實現(xiàn)捕捉日程事件,以監(jiān)視或控制任務/觸發(fā)器的行為。
• 可以通過插件的機制來擴展Quartz 的功能。例如:記錄任務執(zhí)行歷史的日志,或者從文件中載入任務和觸發(fā)器的定義。
posted on 2009-10-22 23:21
腳踏實地 閱讀(1093)
評論(0) 編輯 收藏 所屬分類:
quartz