詳細講解Quartz如何從入門到精通 (5)

http://blog.csdn.net/zdsxj2002/archive/2006/01/16/581011.aspx

編程調度同聲明性調度

例3中,我們通過編程的方法調度我們的ScanFTPSiteJob作業。就是說,我們用Java代碼來設置作業和觸發器。Quartz框架也支持在xml文件裏面申明性的設置作業調度。申明性方法允許我們更快速地修改哪個作業什麼時候被執行。

Quartz框架有一個插件,這個插件負責讀取xml配置文件。xml配置文件包含了關於啓動Quartz應用的作業和觸發器信息。所有xml文件中的作業連同相關的觸發器都被加進調度器。你仍然需要編寫作業類,但配置那些作業類的調度器則非常動態化。例4展示了一個用申明性方式執行與例3代碼相同的邏輯的xml配置文件。

例4.能使用xml文件調度的作業


你可以將xml文件中的元素跟例3代碼作個比較,它們從概念上來看是相同的。使用例4式的申明性方法的好處是維護變得極其簡單,只需改變xml配置文件和重新啓動Quartz應用即可。無須修改代碼,無須重新編譯,無須重新部署。

有狀態和無狀態作業

在本文中你所看到的作業到是無狀態的。這意味着在兩次作業執行之間,不會去維護作業執行時JobDataMap的狀態改變。如果你需要能增、刪,改JobDataMap的值,而且能讓作業在下次執行時能看到這個狀態改變,則需要用Quartz有狀態作業。

如果你是一個有經驗的EJB開發者的話,深信你會立即退縮,因爲有狀態帶有負面含義。這主要是由於EJB帶來的伸縮性問題。Quartz有狀態作業實現了org.quartz.StatefulJob接口。

無狀態和有狀態作業的關鍵不同是有狀態作業在每次執行時只有一個實例。大多數情況下,有狀態的作業不迴帶來大的問題。然而,如果你有一個需要頻繁執行的作業或者需要很長時間才能完成的作業,那麼有狀態作業可能給你帶來伸縮性問題。

Quartz框架的其他特徵

Quartz框架有一個豐富的特徵集。事實上,quarts有太多特性以致不能在一種情況中全部領會,下面列出了一些有意思的特徵,但沒時間在此詳細討論。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章