石英是一個開源和免費的,全功能的作業調度服務,可以與集成,或者伴隨虛擬的任何Java EE和Java SE應用程序 - 從最小的獨立的應用程序,以最大的電子商務系統。
Quartz可以用來創建簡單或複雜的時間表執行數十,數百,甚至作業數万的,成千上萬的;其工作任務是定義為一種可以執行的幾乎任何東西,你可以編程他們做標準的Java組件。 Quartz調度包括許多企業級功能,例如JTA事務和集群。
功能
- 石英可以運行嵌入在另一個獨立式應用程序
- 在Quartz可以在應用程序服務器(或servlet容器)中實例化,並參與XA事務
- 石英可以作為一個獨立的程序運行(它自己的Java虛擬機內),以通過RMI使用
- 在Quartz可以作為實例的獨立程序集群(帶負載均衡和故障轉移功能)
- 工作安排時,一個給定的觸發器時運行。觸發器可以用下面的指令... 李>的幾乎任何組合來創建
- 在一天中的某個時間(到毫秒)
- 在一周的某幾天
- 在一個月的某幾天
- 在一年中的某些日子
- 在沒有註冊的日曆中列出的某些天(如商業節假日)
- 重複特定次數
- 在重複,直到一個特定的時間/日期
- 無限期重複
- 重複延遲間隔
<李班=“bbli”>運行環境:
<李班=“bbli”>作業調度:
什麼在此版本中是新的
- 最顯著API的變化輪廓:
- 在返回(或採取參數)陣列現在返回(或採取)API方法類型集合。例如,而不是getJobGroupNames()的String []我們現在有getJobGroupNames():名單
- 在工作和觸發識別現在基於JobKey和TriggerKey。按鍵包括名稱和組。這對特殊的工作方法,工作/觸發器現在採取鍵作為參數。例如,getTrigger(TriggerKey鍵):觸發,而不是getTrigger(字符串名稱,字符串組):觸發
- 觸發器是現在的接口,而不是一類。同樣,對於的SimpleTrigger,的CronTrigger等。
- 在新的DSL /建設者的API:
- 從相關易施工日期的TriggerUtils方法已被轉移到新的DateBuilder類,可以用靜態導入用於創建精美的實例日期觸發開始和結束時間等。
- 的StatefulJob接口已不再使用,取而代之的新的類級別註釋作業類(同時使用註釋產生相當於舊StatefulJob接口):
- ersistJobDataAfterExecution - 指示調度程序重新儲存作業的JobDataMap中的內容執行完成後, 。
- isallowConcurrentExecution - 指示調度到執行,從當一個已經阻止同樣的工作(由JobKey)其他實例 。
- 新的註釋:@ExecuteInJTATransaction。添加此批註作業類石英指示執行作業之前啟動一個JTA事務(和提交/完成/異常後回滾)。從1.x版本的配置屬性“wrapJobExecutionInUserTransaction”仍然存在,但新的註解讓你調整每次作業的行為,而配置屬性將影響所有作業。
- 重大變化JobListener和TriggerListener用法:
- 之間的區別去除的“全球性”和“非全局”的聽眾
- JobDetails和觸發器不再與聽眾的名稱列表通知配置,而不是聽眾識別哪些工作/觸發他們感興趣的問題。
- 監聽器現在分配一組匹配器實例 - 這對於就業提供配套規則/觸發器,他們希望收到事件
- 監聽器現在可以通過一個API ListenerManager管理,而不是直接與調度API。
- 的SchedulerException類和類層次結構已被清理。
- DateIntervalTrigger更名為CalendarIntervalTrigger(或者更確切地說具體的類現在CalendarIntervalTriggerImpl)。
- 就業機會和觸發器“波動性”的概念(屬性)已被淘汰。
- 新觸發失火指令MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY允許觸發器被以這樣的方式配置的,它是選擇性地從所有被忽略不點火處理。換句話說,它會盡快,因為它可以火,沒有特殊處理 - 為提高性能尤其是有大量的一次性(非重複)觸發設置一個很好的選擇 。
- 在觸發的compareTo()方法現在可以正確地涉及到它的equals()方法,因為它比較觸發的關鍵,而不是一個火情時間。一個新的比較,根據火災時觸發排序,優先和重點加入為Trigger.TriggerTimeComparator。
- 新特點:
- Scheduler.clear()方法提供方便(危險!)的方式從調度中刪除所有作業,觸發器和日曆。
- Scheduler.scheduleJobs(地圖triggersAndJobs,布爾替換)方法提供了方便批量增加就業機會和觸發器。
- Scheduler.unscheduleJobs(名單triggerKeys)方法提供批量方便unscheduling的工作。
- Scheduler.deleteJobs(名單jobKeys)方法提供了方便的批量刪除的工作(以及相關的觸發器)。
- Scheduler.checkExists(JobKey jobKey)和Scheduler.heckExists(TriggerKey triggerKey)方法提供了方便的方式來確定的工作/觸發器鍵唯一性(相對於舊有具有以名稱檢索作業/觸發器,然後檢查是否結果為空)。
- JDBCJobStore現在允許使用多個不同的調度情況下,一組表
- JDBCJobStore現在能夠存儲非核心觸發實現,而無需使用BLOB列,通過使用新的TriggerPersistenceDelegate接口,可以(可選)可以通過自定義觸發類型的實施者實現的。
- JDBCJobStore現在包括改進兼容性SybaseDelegate與Sybase
- 的Cron表達式現在支持到指定為“每月最後一天”和表達式“的月份最後一個工作日”抵消的能力。對於實施例:“L-3”(從最後一個月三天後)或“L-3W”(最接近平日的一天從該月的最後一天三天回)
- 包含調度數據的XML文件,現在有一種方法來指定的觸發啟動時間為偏移到從時間的文件處理(用於需要發射開始後的一段時間程序啟動/部署觸發器)的未來。
- 從模式:
- 在XML文件架構,支持指定觸發器的'優先'屬性。
- QuartzInitializerListener(和QuartzInitializerServlet)支持新參數“等待在關機”,這將導致調度等待執行作業關閉,當Servlet容器是取消部署應用程序之前完成。
- 新增DirectoryScanJob核心作業船與石英,還增加了最低年齡參數預先存在FileScanJob。
- 新增使用QuartzInitializerListener或QuartzInitializerServlet到Java EE Web應用程序中初始化時,石英添加ServletContext中進入SchedulerContext能力。
- 雜項:
- 在各種性能改進,包括(但不限於):
- 能夠批量採集觸發器準備被解僱,這可以提供性能改進非常繁忙的調度
- 方法批量添加/刪除作業和觸發器(參見“新功能”)
- 觸發器有一個新的指令失火選項,MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY,如果你不需要處理失火的觸發器(S),並希望利用的性能提升可能是有用
- 各種bug修復,完整列表,請參閱從吉拉的發行說明:https://jira.terracotta.org/jira/secure/ReleaseNote.jspa?projectId=10282&version=10842
- 在DBCP不再用於數據庫連接池,C3PO來代替。
- 的JobFactory實現正與(通過)的句柄調度初始化。
- 所有例子打包在?的例子嗎? Quartz發行的目錄已更新為使用(示範)新的API定義作業和觸發器。
施工作業和觸發器
在什麼版本1.6.6新是
- 在一些重要的錯誤修正
- 幾個微小的改進
要求
- 在Java 2標準版運行環境
評論沒有發現