您的位置:首页 > 编程语言 > Java开发

Spring与Quartz集成配置实现简单定时任务调度

2017-01-09 12:33 866 查看
可以说是最好的一篇定时任务的介绍


来自:http://www.zuidaima.com/share/2736623139458048.htm


一.代码结构图





二.核心类

Job: 一个接口, 它里面只有一个方法void execute(),我们需要执行任务就需要实现这个接口,在execute中实现我们要做的事情。

JobDetail: 在Quartz每次执行Job时,都需要创建一个Job实例,所以它直接接受一个实现类以便运行时实例化,还需要一个描述信息,

JobDetail就是做这个事情。

Trigger: 是一个抽象类,描述触发执行的时间,它主要有SimpleTrigger和CronTrigger这两个子类,当仅需触发一次或者以固定时间间隔周期执行,SimpleTrigger是最适合的选择;而CronTrigger则可以通过Cron表达式定义出各种复杂时间规则的调度方案:如每早晨9:00执行,周一、周三、周五下午5:00执行等。

Scheduler: 可以认为是quartz的调度器,我们把JobDetail和Trigger注册到Scheduler,由它调度运行。

三.各部分代码截图

1.applicationContext.xml





2.MyJob.java





四.spring与quartz集成版本问题

  出现:Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class的原因是Spring 3.0版本中内置的Quartz版本是<2.0的,在使用最新的Quartz包(>2.0)之后,接口不兼容。

解决方法:

1.将<bean name="myJobtTask" class="org.springframework.scheduling.quartz.JobDetailBean">改为:

<bean name="myJobtTask" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">

2.将<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">改为:

​<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">


5个评论

5个牛币Quartzquartz集成quartz配置spring定时任务quartz调度任务调度

文件名:springQuartz.rar,文件大小:6997.86K下载

/
/springQuartz
/springQuartz/.classpath
/springQuartz/.project
/springQuartz/.settings
/springQuartz/.settings/org.eclipse.jdt.core.prefs

/springQuartz/bin
/springQuartz/bin/applicationContext.xml
/springQuartz/bin/com
/springQuartz/bin/com/zjt
/springQuartz/bin/com/zjt/quartz
/springQuartz/bin/com/zjt/quartz/MyJob.class
/springQuartz/bin/com/zjt/quartz/Test.class

/springQuartz/bin/quartz.properties

/springQuartz/lib
/springQuartz/lib/commons-collections-3.2.1.jar
/springQuartz/lib/commons-logging-1.1.3.jar
/springQuartz/lib/jta-1.1.jar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: