spring集成quartz

spring集成quartz

注意:出现异常“Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class”

Spring3.0不支持Quartz2.0,因为org.quartz.CronTrigger在2.0从class变成了一个interface造成IncompatibleClassChangeError错误:

有两种办法:

第一种降低quartz的版本为,最好是quartz1.8

第二种是升级spring版本为Spring3.2以上

注:Spring3.2.4配置文件中使用CronTriggerFactoryBean来集成quartz2.x,

使用CronTriggerBean来集成quartz1.8.x及以前版本.

以下是一个小例子demo

<!-- 启动触发器的配置开始 -->

<bean name="startQuertz" lazy-init="false" autowire="no"

class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<property name="triggers">

<list>

<ref bean="myJobTrigger" />

</list>

</property>

</bean>

<!-- 启动触发器的配置结束 -->

<!-- 调度的配置开始 -->

<!--

quartz-1.8以前的配置

<bean id="myJobTrigger"

class="org.springframework.scheduling.quartz.CronTriggerBean">

<property name="jobDetail">

<ref bean="myJobDetail" />

</property>

<property name="cronExpression">

<value>0/1 * * * * ?</value>

</property>

</bean>

-->

<!-- quartz-2.x的配置 -->

<bean id="myJobTrigger"

class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

<property name="jobDetail">

<ref bean="myJobDetail" />

</property>

<property name="cronExpression">

<value>0/1 * * * * ?</value>

</property>

</bean>

<!-- 调度的配置结束 -->

<!-- job的配置开始 -->

<bean id="myJobDetail"

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<property name="targetObject">

<ref bean="myJob" />

</property>

<property name="targetMethod">

<value>work</value>

</property>

</bean>

<!-- job的配置结束 -->

<!-- 工作的bean -->

<bean id="myJob" class="com.tgb.lk.demo.quartz.MyJob" />

package com.demo.test;

import java.util.Date;

/*

* 使用spring+Quartz执行任务调度的具体类

* */

public class MyJob {

/*

* Description:具体工作的方法,此方法只是向控制台输出当前时间,

* 输入的日志在:%tomcatRoot%\logs\tomcat7-stdout.yyyy-MM-dd.log中,

* 其中,yyyy-MM-dd为部署的日期,经试验发现默认情况下并不是每天都生成一个stdout的日志文件

* @return 返回void

* */

public void work()

{

System.out.println("当前时间:"+new Date().toString());

}

}//End of MyJob

spring集成quartz,布布扣,bubuko.com

时间: 2024-12-23 04:38:11

spring集成quartz的相关文章

Spring集成Quartz定时器

<!-- Spring集成Quartz开始 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list>

使用Spring集成Quartz

Quartz: Quartz调度包的两个基本单元是作业(Job)和触发器(Trigger).作业是能够调度的可执行任务,触发器提供了对作业的调度.虽然这两个实体很容易合在一起,但在Quartz中将它们分离开来是有原因的,而且也很有益处.通过把要执行的工作与它的调度分开,Quartz允许在不丢失作业本身或作业的上下文的情况下,修改调度触发器.而且,任何单个的作业都可以有多个触发器与其关联 使用Spring集成Quartz: 本系统使用Spring来集成Quartz.我们只需要在Spring中配置相

Quartz学习总结(1)——Spring集成Quartz框架

一.Quartz简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序.Jobs可以做成标准的Java组件或 EJBs.Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.Quartz 允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和触发器的多对多关系,

spring集成quartz实现定时任务

定时器jar引入 <dependency>    <groupId>org.quartz-scheduler</groupId>    <artifactId>quartz</artifactId>    <version>2.3.0</version></dependency> spring配置quartz的xml <beans xmlns="http://www.springframewor

Spring集成Quartz的3种方式

1.使用xml配置方式 Maven依赖 <properties> <!-- spring版本号 --> <spring.version>4.2.2.RELEASE</spring.version> <!-- Quartz的版本 --> </properties> <dependency> <groupId>org.springframework</groupId> <artifactId>

(2)Spring集成Quartz定时任务框架介绍和Cron表达式详解

在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码.使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍. 一.增加所依赖的JAR包1.增加Spring的Maven依赖 <dependency> <groupId>org

spring集成Quartz时区问题造成任务晚执行八小时

项目中在Spring中集成了Quartz,配置的每日凌晨执行的定时任务都是到了八点多才执行,经过一番查找,可能是时区问题造成的. 一种解决办法是在JVM启动参数中增加 --Duser.timezone=GMT+08 另一种办法是在配置文件中增加timeZone的配置 改JVM参数的方式,一但项目迁移实施人员可能会忘记改,所以决定再代码里做手脚. 1.获取一个TimeZone,使用java.util.TimeZone.getTimeZone(String ID)获取指定的TimeZone,ID有两

【Spring】Spring集成Quartz

maven引入所需的jar包: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.2</version> </dependency> <dependency>         <groupId>org.springframework</g

Spring集成Quartz定时器实现定时作业任务

这篇文章有点久远了,记得是第一次出来实习时,大三暑假自己找了一家软件公司实习了很长时间,当时学到很多实践性的东西,这个Quartz就是其中一个,还记得是做OA,一些消息需要定时提醒定时删除,项目框架里也没有,当时经验不足也没接触过这样类似的东西,所以用了整一下午的时间算是基本搞定了吧,今天很有兴致,找出这篇大学时写过的几篇文章分享出来,内容如下: 1. 创建一个定时任务并继承类QuartzJobBean并实现其方法executeInternal(JobExecutionContext conte