博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QuartzPlugin解决Quartz1.X和2.X版本不兼容问题
阅读量:6504 次
发布时间:2019-06-24

本文共 1535 字,大约阅读时间需要 5 分钟。

  hot3.png

Quartz 2和Quartz 1在class和interface设计上有很大不同,api也有了较大调 整,所以Quzrtz 2并不兼容Quartz 1。QuartzPlugin 的API则屏蔽了2大版本的差异,方便用户使用。

<!-- more -->

版本不兼容的原因

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方 法指定版本。

<a href="http://kidzhou.me/blog/2015/01/30/quartzpljie-jue-quartz1-dot-xhe-2-dot-xban-ben-bu-jian-rong-wen-ti">原文</a>

转载于:https://my.oschina.net/b1412/blog/374542

你可能感兴趣的文章
MySQL 5.6 for Windows 解压缩版配置安装
查看>>
Shell笔记4——if条件语句的知识和实践
查看>>
C#中Struct与Class的区别(转)
查看>>
squid缓存代理---传统代理和透明代理详解
查看>>
知识阅读的好处你都了解吗?芒果xo来告诉你答案
查看>>
Linux常见命令总结
查看>>
三分钟轻松了解Spring框架基础知识
查看>>
verilog实现的VGA显示自反弹移动小方块
查看>>
springmvc使用jodo-time的坑
查看>>
USB数据采集卡:labjack T7、T7 Pro系列的技术特点
查看>>
Java项目命名规范
查看>>
自学web前端课程大纲分享,适合所有人学习
查看>>
[JMS 3] ActiveMQ实现简单的helloworld
查看>>
Java 注解 (Annotation)你可以这样学
查看>>
win7下在当前目录下打开cmd命令窗口
查看>>
机器学习你要了解的5件事
查看>>
友情链接有什么用
查看>>
导航状态尺寸
查看>>
有哪些不用编写代码就能轻松制作生成HTML5页面的工具
查看>>
eclipse中项目svn转gitLab全过程
查看>>