QuartzPlugin解决Quartz1.X和2.X版本不兼容问题
2015-02-02 17:55
393 查看
Quartz 2和Quartz 1在class和interface设计上有很大不同,api也有了较大调
整,所以Quzrtz 2并不兼容Quartz 1。QuartzPlugin 的API则屏蔽了2大版本的差异,方便用户使用。
job.properties中可以配置任务,config.properties是quartz原生的配置文件。
除开job.properties中可以配置任务,调用add方法也可以增加任务。
QuartzPlguin默认使用的Quartz 2,如果你使用的是Quartz 1那么调用version方
法指定版本。
原文
整,所以Quzrtz 2并不兼容Quartz 1。QuartzPlugin 的API则屏蔽了2大版本的差异,方便用户使用。
版本不兼容的原因
JobDetail 和 CornTrigger 在1.X版本中 都是Class,而在2.X中则为接口。解决方案
利用反射创建对象,比较粗暴丑类,但是解决问题if (VERSION_1.equals(version)) { jobDetail = Reflect.on("org.quartz.JobDetail").create(jobClassName, jobClassName, job.getClass()).get(); trigger = Reflect.on("org.quartz.CronTrigger").create(jobClassName, jobClassName, jobCronExp).get(); } else { jobDetail = Reflect.on("org.quartz.JobBuilder").call("newJob", job.getClass()).call("withIdentity", jobClassName, jobClassName).call("build").get(); Object temp = Reflect.on("org.quartz.TriggerBuilder").call("newTrigger").get(); temp = Reflect.on(temp).call("withIdentity", jobClassName, jobClassName).get(); temp = Reflect.on(temp).call("withSchedule", Reflect.on("org.quartz.CronScheduleBuilder").call("cronSchedule", jobCronExp).get()).get(); trigger = Reflect.on(temp).call("build").get(); }
示例代码
插件的使用就很简单了QuartzPlugin quartzPlugin = new QuartzPlugin("job.properties","config.properties"); quartzPlugin.add("*/5 * * * * ?", new YourJob());//通过API增加任务 quartzPlugin.version(QuartzPlugin.VERSION_1);//指定Quartz版本
job.properties中可以配置任务,config.properties是quartz原生的配置文件。
除开job.properties中可以配置任务,调用add方法也可以增加任务。
QuartzPlguin默认使用的Quartz 2,如果你使用的是Quartz 1那么调用version方
法指定版本。
原文
相关文章推荐
- opencv1.0版本摄像头驱动不兼容问题的解决方法
- android利用反射来解决版本兼容问题。
- 解决所有浏览器兼容flash ,并解决 Chrome 27.0 的版本不能展示flash 的问题
- 解决多版本sdk兼容问题
- 怎样在xcode5中使用低版本sdk,解决兼容ios7ui问题
- IE浏览器各版本与web标准不兼容问题解决方案
- S60模拟器与java1.6版本不兼容问题的解决
- 关于DevExpress2011.1.8版本和NetFramework4.5框架的不兼容问题解决方法
- 解决Opencv高低版本不兼容问题
- 怎样在xcode5中使用低版本sdk,解决兼容ios7ui问题
- 解决多版本SDk的兼容问题
- strutsDAO层添加数据时 mysqljar包版本兼容问题解决
- 利用反射解决版本兼容问题[讨论]
- 解决Opencv高低版本不兼容问题
- POI操作EXCEL03前后版本不兼容问题解决
- firefox 3 插件版本兼容问题解决方案(例子:speak it)
- 解决django 0.96版本与PostgreSQL 8.3.1不兼容的问题
- Win7下安装启动vs2012的程序版本不兼容问题解决方法
- CSS样式如何解决IE浏览器不同版本的兼容问题