首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

应用quartz实现每周一至周五,非法定节假日,每天9:30-11:30,13:00-15:00执行定时任务

2012-10-17 
使用quartz实现每周一至周五,非法定节假日,每天9:30-11:30,13:00-15:00执行定时任务。? 我的定时任务需求是

使用quartz实现每周一至周五,非法定节假日,每天9:30-11:30,13:00-15:00执行定时任务。

? 我的定时任务需求是:使用quartz实现每周一至周五,非法定节假日,每天9:30-11:30,13:00-15:00执行定时任务。

?

经过学习quartz,发现使用SimperTrigger和CronTrgger这两种触发器都无法满足这种需求的表达,我始终无法相信强

?

大的quartz绝对不可能无法实现这种需求。

?

? 经过别人的指点,终于在一篇法文的blog中找到了类似的解决办法,需要借助于quartz的Calender来实现这种需求,

?

这个过程非常曲折,遇到了很多问题,总体感觉quartz虽然强大,但是社区的活跃程度不够,文档还不是非常完善,

?

这也许是很多开源项目的通病,可能很多复杂一些的需求,直接从文档中无法得到答案,有时候需要自己去阅读源代码,

?

阅读javadoc才能找到答案,解决这一问题后再次印证了那句话,黄天不负有心人,只要你坚持问题总能解决的,

?

下面进入正题。

?

对于排除法定节假日,可以使用HolidayCalendar,但是该类只能排除某一个法定节假日,无法方便的排除一个列

表的节假日,因此需要自己扩展该类,代码如下:

?为了方便修改法定节假日,可以将法定节假日的配置放在java properties文件中。
?在Spring配置文件中继续配置定时任务,配置如下:

?

?

?

1 楼 lonebao 2010-11-12   有个问题,这些功能直接用quartz1.6的API就能实现了,可是对于设置了weeklyCalendar的,如果某个周日因为倒休变更为了工作日,该如何设置啊?另外我是动态创建Trigger的 不是通过配置文件

热点排行