P15 Quartz是一個開源的作業調度框架,它完全由Java寫成,并設計用于J2SE和J2EE應用中。它提供了巨大的靈活性而不犧牲簡單性。你能夠用它來為執行一個作業而創建簡單的或復雜的調度。它有很多特征,如:數據庫支持,集群,插件,EJB作業預構建,JavaMail及其它,支持cron-like表達式等等。
P17 各種企業應用幾乎都會碰到任務調度的需求,就拿論壇來說:每隔半個小時生成精華文章的RSS文件,每天凌晨統計論壇用戶的積分排名,每隔30分鐘執行鎖定用戶解鎖任務。對于一個典型的MIS系統來說,在每月1號凌晨統計上個月各部門的業務數據生成月報表,每半個小時查詢用戶是否已經有快到期的待處理業務……,這樣的例子俯拾皆是,不勝枚舉。任務調度本身涉及到多線程并發、運行時間規則制定和解析、場景保持與恢復、線程池維護等諸多方面的工作。如果直接使用自定義線程這種刀耕火種的原始辦法,開發任務調度程序是一項頗具挑戰性的工作。
P18 各種企業應用幾乎都會碰到任務調度的需求,就拿論壇來說:每隔半個小時生成精華文章的RSS文件,每天凌晨統計論壇用戶的積分排名,每隔30分鐘執行鎖定用戶解鎖任務。 對于一個典型的MIS系統來說,在每月1號凌晨統計上個月各部門的業務數據生成月報表,每半個小時查詢用戶是否已經有快到期的待處理業務……,這樣的例子俯拾皆是,不勝枚舉。
P17 OpenSymphony所提供的Quartz自2001年發布版本以來已經被眾多項目作為任務調度的解決方案,Quartz在提供巨大靈活性的同時并未犧牲其簡單性,它所提供的強大功能使你可以應付絕大多數的調度需求。 Quartz 在開源任務調度框架中的翹首,它提供了強大任務調度機制,難能可貴的是它同時保持了使用的簡單性。Quartz 允許開發人員靈活地定義觸發器的調度時間表,并可以對觸發器和任務進行關聯映射。 此外,Quartz提供了調度運行環境的持久化機制,可以保存并恢復調度現場,即使系統因故障關閉,任務調度現場數據并不會丟失。此外,Quartz還提供了組件式的偵聽器、各種插件、線程池等功能。
P17 各種企業應用幾乎都會碰到任務調度的需求,就拿論壇來說:每隔半個小時生成精華文章的RSS文件,每天凌晨統計論壇用戶的積分排名,每隔30分鐘執行鎖定用戶解鎖任務。對于一個典型的MIS系統來說,在每月1號凌晨統計上個月各部門的業務數據生成月報表,每半個小時查詢用戶是否已經有快到期的待處理業務……,這樣的例子俯拾皆是,不勝枚舉。任務調度本身涉及到多線程并發、運行時間規則制定和解析、場景保持與恢復、線程池維護等諸多方面的工作。如果直接使用自定義線程這種刀耕火種的原始辦法,開發任務調度程序是一項頗具挑戰性的工作。Java開源的好處就是:領域問題都能找到現成的解決方案。OpenSymphony所提供的Quartz自2001年發布版本以來已經被眾多項目作為任務調度的解決方案,Quartz在提供巨大靈活性的同時并未犧牲其簡單性,它所提供的強大功能使你可以應付絕大多數的調度需求。Quartz在開源任務調度框架中的翹首,它提供了強大任務調度機制,難能可貴的是它同時保持了使用的簡單性。Quartz允許開發人員靈活地定義觸發器的調度時間表,并可以對觸發器和任務進行關聯映射。此外,Quartz提供了調度運行環境的持久化機制,可以保存并恢復調度現場,即使系統因故障關閉,任務調度現場數據并不會丟失。
P5 Quartz cron表達式的格式十分類似于UNIX cron格式,但還是有少許明顯的區別。區別之一就是Quartz的格式向下支持到秒級別的計劃,而UNIXcron計劃僅支持至分鐘級。許多我們的觸發計劃要基于秒級遞增的(例如,每45秒),因此這是一個非常好的差異。在UNIX cron里,要執行的作業(或者說命令)是存放在cron表達式中的,在第六個域位置上。Quartz用cron表達式存放執行計劃。
P6 Quartz是一個任務日程管理系統,這個系統可以與任何其他軟件系統集成或者一起用。“任務進度管理器”就是一個在預先確定(被納入日程)的時間到達時,負責執行(或者通知)其他軟件組件的系統。
P6 什么是動態定時任務:是由客戶制定生成的,服務端只知道該去執行什么任務,但任務的定時是不確定的(是由客戶制定)。
P17 Quartz是一個作業調度系統(ajob scheduling system),Quartz不但可以集成到其他的軟件系統中,而且也可以獨立運行的;在本文中“job scheduler”的意思是:一個負責在約定的時間到達時執行(或通知)其他軟件控件的方法。Quartz是非常靈活的,為了實現我們的需求Quartz包含了許多可以獨立或被集成使用的典型范例,同時使我們編寫項目中的代碼也覺得很簡單自然(natural)。Quartz是很輕量級的,只需要簡單的安裝或配置就可以在項目中使用;如果只是相對簡單的使用實際上可以直接地使用(out-of-the-box)。Quartz具有容錯性,能夠持久化所調度的作業,即在系統重啟后也可以繼續執行原先未完成的作業。雖然Quartz對給定的計劃可以簡單地運行一些系統的處理是很適用的,但只有當我們學習如何使用Quartz去驅動我們的應用業務處理流程時,才能真正的認識到Quartz的全部潛能。
P31 Quartz是一個開源的任務調度系統,它能用來調度很多任務的執行。運行環境Quartz能嵌入在其他應用程序里運行。Quartz能在一個應用服務器里被實例化(或servlet容器),并且參與XA事務Quartz能獨立運行(通過JVM),或者通過RMIQuartz能被集群實例化。
P5 各種企業應用幾乎都會碰到任務調度的需求,就拿論壇來說:每隔半個小時生成精華文章的RSS文件,每天凌晨統計論壇用戶的積分排名,每隔30分鐘執行鎖定用戶解鎖任務。對于一個典型的MIS系統來說,在每月1號凌晨統計上個月各部門的業務數據生成月報表,每半個小時查詢用戶是否已經有快到期的待處理業務……,這樣的例子俯拾皆是,不勝枚舉。Quartz在開源任務調度框架中的翹首,它提供了強大任務調度機制,難能可貴的是它同時保持了使用的簡單性。Quartz允許開發人員靈活地定義觸發器的調度時間表,并可以對觸發器和任務進行關聯映射。Spring為創建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean類,以便能夠在Spring容器中享受注入的好處。此外Spring還提供了一些便利工具類直接將Spring中的Bean包裝成合法的任務。Spring進一步降低了使用Quartz的難度,能以更具Spring風格的方式使用Quartz。
P Quartz是什么,大概不需多加說明,簡單講就是一個純 Java 實現的作業調度工具,相當于數據庫中的 Job、Windows 的計劃任務、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精細。也許大多數人聽說 Quartz是在學習或使用 Spring 的時候,也就是 Spring 整合了 Quartz。而我也不例外,同樣是在春天里得悉了這塊石英。