应项目需要做了一个定时更新的 cache 框架,采用 spring+quartz 很方便的实现,可以适用任何需要定时才更新的地方,比如静态网页 cache 等。代码很简单:
---------------------------------QuartzCacheHandler-------------------------------------
-----------------------------------QuartzCache-----------------------------------------------
---------------------------------------------------------------------------------------------------------
Web.xml 中只需加 2 句:
最后是applicationContext_quartzCache.xml配置文件,就是标准的spring结合quartz的配置文件:
写自己的QuartzCache子类并实现refresh方法,然后在配置文件中定义bean和相应的trigger就能方便的实现定时cache了。示例中使用了 SimpleTriggerBean ,每2s更新一次。也可以使用CronTriggerBean,每天定时更新。 使用 cache ,只需调用 QuartzCacheHandler 的 get 和 getSe 就行, get 是在由 web 容器启动 quartz 的场合使用, getSe 在使用 init 方法启动时使用。 Get 中调用了自己写的一个 ContextUtil ,它包含一个静态的 applicationContex 的引用,在 spring 容器启动后由 MyContextLoaderListener (重载 spring 的 ContextLoaderListener )填充。
这些东西也就几个小时搞定,多亏了spring,quartz这些开源软件啊。要自己用timer实现,费时费力,扩展性,易用性等也会差很多。
posted on 2006-12-13 14:46 pesome 阅读(4113) 评论(7) 编辑 收藏 所属分类: 开源软件
支持一下...呵呵..补充一下:quartz也可以用在非Web应用的定时操作,官方网站上说的.不要误解为只能在Spring里才能用它, 它就是一个普通的定时器类库. 回复 更多评论
呵呵,spring因为提供了与quartz的集成,能方便的进行配置,所以使用了spring。能到openfans提交下你的blog不,有很多不错的东西啊。大家交个朋友,谢谢! 回复 更多评论
不客气...quartz我只看过,没用过.. 欢迎转载, 互相帮助, 共同进步! 有空我也去 openfans.net 灌水去.. 回复 更多评论
呵呵,现在还没开论坛,提交下你的blog(点击feed导入->增加feed)先,这样每天就可以看到你的新文章了。 回复 更多评论
恩,是的SPRING+quartz可以定时FTP了==都可以 回复 更多评论
good code 不过有些地方似乎有点过度设计的意思,也就是说,如果不用一些spring的特性,是不是会更简洁一些?有些地方似乎是为了用spring而用spring了,反而有些不够漂亮。设想一下,如果只用timer?真的不能写出更简洁的代码么?有机会的话可以讨论讨论,我也发现在用spring的过程中,经常会犯这样的问题,设计问题向spring上去靠:) 头一次看到你的地盘,不当之处海涵:) 回复 更多评论
呵呵,首先一开始就知道spring+quarzt能实现这个功能,能直接拿来用,就没有考虑太多。timer以前用过,但比较粗浅。用spring主要是懒得写单例和配置文件,也的确是越来越依赖它了。 回复 更多评论
Powered by: BlogJava Copyright © pesome