應(yīng)項目需要做了一個定時更新的 cache 框架,采用 spring+quartz 很方便的實現(xiàn),可以適用任何需要定時才更新的地方,比如靜態(tài)網(wǎng)頁 cache 等。代碼很簡單:
---------------------------------QuartzCacheHandler-------------------------------------
?
-----------------------------------QuartzCache-----------------------------------------------
---------------------------------------------------------------------------------------------------------
Web.xml 中只需加 2 句:
最后是applicationContext_quartzCache.xml配置文件,就是標(biāo)準(zhǔn)的spring結(jié)合quartz的配置文件:
寫自己的QuartzCache子類并實現(xiàn)refresh方法,然后在配置文件中定義bean和相應(yīng)的trigger就能方便的實現(xiàn)定時cache了。示例中使用了 SimpleTriggerBean ,每2s更新一次。也可以使用CronTriggerBean,每天定時更新。 使用 cache ,只需調(diào)用 QuartzCacheHandler 的 get 和 getSe 就行, get 是在由 web 容器啟動 quartz 的場合使用, getSe 在使用 init 方法啟動時使用。 Get 中調(diào)用了自己寫的一個 ContextUtil ,它包含一個靜態(tài)的 applicationContex 的引用,在 spring 容器啟動后由 MyContextLoaderListener (重載 spring 的 ContextLoaderListener )填充。
這些東西也就幾個小時搞定,多虧了spring,quartz這些開源軟件啊。要自己用timer實現(xiàn),費時費力,擴展性,易用性等也會差很多。
posted on 2006-12-13 14:46 pesome 閱讀(4134) 評論(7) 編輯 收藏 所屬分類: 開源軟件
支持一下...呵呵..補充一下:quartz也可以用在非Web應(yīng)用的定時操作,官方網(wǎng)站上說的.不要誤解為只能在Spring里才能用它, 它就是一個普通的定時器類庫. 回復(fù) 更多評論
呵呵,spring因為提供了與quartz的集成,能方便的進行配置,所以使用了spring。能到openfans提交下你的blog不,有很多不錯的東西啊。大家交個朋友,謝謝! 回復(fù) 更多評論
不客氣...quartz我只看過,沒用過.. 歡迎轉(zhuǎn)載, 互相幫助, 共同進步! 有空我也去 openfans.net 灌水去.. 回復(fù) 更多評論
呵呵,現(xiàn)在還沒開論壇,提交下你的blog(點擊feed導(dǎo)入->增加feed)先,這樣每天就可以看到你的新文章了。 回復(fù) 更多評論
恩,是的SPRING+quartz可以定時FTP了==都可以 回復(fù) 更多評論
good code 不過有些地方似乎有點過度設(shè)計的意思,也就是說,如果不用一些spring的特性,是不是會更簡潔一些?有些地方似乎是為了用spring而用spring了,反而有些不夠漂亮。設(shè)想一下,如果只用timer?真的不能寫出更簡潔的代碼么?有機會的話可以討論討論,我也發(fā)現(xiàn)在用spring的過程中,經(jīng)常會犯這樣的問題,設(shè)計問題向spring上去靠:) 頭一次看到你的地盤,不當(dāng)之處海涵:) 回復(fù) 更多評論
呵呵,首先一開始就知道spring+quarzt能實現(xiàn)這個功能,能直接拿來用,就沒有考慮太多。timer以前用過,但比較粗淺。用spring主要是懶得寫單例和配置文件,也的確是越來越依賴它了。 回復(fù) 更多評論
Powered by: BlogJava Copyright © pesome