Spring结合Quartz实现多任务定时调用

转载 2012年03月27日 18:34:55

转载自:http://blog.sina.com.cn/s/blog_4d6c7dea0100utks.html

 

Quartz框架提供了丰富的任务调度支持,比如,在何时执行何种任务,它是一个开源的由OpenSymphony维护的项目,开发者能够在Java EE,或单独的Java SE应用中使用它。无论是简单的任务调度,还是复杂的企业级应用,Quartz都能够很好地胜任。其中,这些任务可以是普通POJO,甚至还可以是EJB 3.0组件。
如果开发者需要开发如下方面的应用,则Quartz是理想的选择。
◆驱动工作流:比如,如果新创建的流程任务需要在2小时内处理完,则在2小时后Quartz会检查订单是否成功处理。如果没有处理,则Quartz会依据工作流定义的规则来对订单进行处理,销毁它,或者进行其他处理。
◆系统维护工作:比如,在每个工作日的固定时间将RDBMS中的内容导出为XML文件。
Spring 2.0提供了org.springframework.scheduling.quartz包,以支持Quartz任务调度集成。为提供用户的任务,开发者实现的类必须继承于quartz.QuartzJobBean抽象类。QuartzJobBean是Quartz中org.quartz.Job接口的简单实现(子类),Spring为简化Job接口的实现而提供了QuartzJobBean类。QuartzJobBean同Java 2 SDK中的TimerTask类似,用于定义任务本身。其中,executeInternal()方法定义待执行的任务,这同TimerTask中的 run()类似。
为了指定更复杂的任务调度规则,开发者要使用Spring提供的CronTriggerBean,它是Quartz中 org.quartz.CronTrigger的子类,Spring 2.0为简化CronTrigger子类的开发而提供了CronTriggerBean。CronTriggerBean比 SimpleTriggerBean功能更强大,它能够控制任务执行的精确时间,比如,早上九点半需要执行某QuartzJobBean中给定的任务。借助于CronTriggerBean中的cronExpression属性能够设定任务的执行时机。
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:首先我们来写二个被调度的类QuartzJob,及QuartzJobTwo,二个以上类似:
package com.writchie.quartz;
public class QuartzJob
{
public void work()
{
System.out.println("吴理琪提示您:Spring Quartz的任务调度1被调用!");
//定时调用的业务逻辑
}
}

package com.writchie.quartz;
public class QuartzJobTwo
{
public void work()
{
System.out.println("吴理琪提示您:Spring Quartz的任务调度2被调用 !");
//定时调用的业务逻辑
}
}

Spring的配置文件applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="
http://www.springframework.org/schema/beans"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 要调用的工作类 -->
<bean id="quartzJob" class="com.writchie.quartz.QuartzJob"></bean>
<bean id="quartzJobTwo" class="com.writchie.quartz.QuartzJobTwo"></bean>
<!-- 可继续加新的任务 -->
<!-- 要调用的工作类结束 -->

<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob"/>
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>

<bean id="jobtask2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJobTwo"/>
</property>
<!-- 调用类中的方法 -->

Spring结合Quartz实现多任务定时调用

Quartz框架提供了丰富的任务调度支持,比如,在 何时执行何种任务,它是一个开源的由OpenSymphony维护的项目,开发者能够在Java EE,或单独的Java SE应用中使用它。无论是简单的任...
  • lisia4
  • lisia4
  • 2014年10月09日 15:12
  • 211

Spring结合Quartz实现多任务定时调用

 Quartz框架提供了丰富的任务调度支持,比如,在 何时执行何种任务,它是一个开源的由OpenSymphony维护的项目,开发者能够在Java EE,或单独的Java SE应用中使用它。无论是...
  • miniyuyu
  • miniyuyu
  • 2016年04月25日 19:55
  • 175

Spring整合定时任务调度框架Quartz实战

定时的任务处理在程序开发中应用的相当普遍,之前一直使用JDK的Timer类库来做任务调度功能不是很方便,因为它不能像cron服务那样可以指定具体年、月、日、时和分的时间,我们只能将时间通过换算成微秒后...
  • a1314517love
  • a1314517love
  • 2014年09月12日 11:51
  • 11603

quartz-springMVC实现方式 -springboot实现方式(动态删除数据库任务)

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,...
  • walle167
  • walle167
  • 2016年05月23日 17:42
  • 717

Spring+Quartz实现定时任务

在我们进行软件项目开发的过程中,相信大家在很多时候都会遇到如下业务场景:每天、每周或每月生成相应的业务报表;每天统计系统注册人数;定期清理平台长久不登录的用户等等。遇到这种业务场景需要怎样去处理?人为...
  • u010397369
  • u010397369
  • 2013年12月21日 14:55
  • 21203

SpringBoot集成Quartz实现定时器

SpringBoot+Quartz实现定时器, 由于本人也是刚学习,不足之处请各位大神指正 .. 1.pom配置 dependency> groupId>org.spri...
  • Dreamer_ax
  • Dreamer_ax
  • 2017年05月16日 14:30
  • 727

spring boot环境下使用quartz设置定时任务

spring boot环境下使用quartz设置定时任务
  • u012432826
  • u012432826
  • 2016年03月08日 15:02
  • 11498

6. springboot整合quartz实现定时任务

转载:http://www.cnblogs.com/lic309/p/4089633.html 在做项目时有时候会有定时器任务的功能,比如某某时间应该做什么,多少秒应该怎么样...
  • LINABC123000
  • LINABC123000
  • 2017年04月04日 11:55
  • 491

Spring整合Quartz实现定时任务

Quartz框架是一个极其成功的开源任务调度框架,目前很多公司在实现任务调度上都直接使用或在借鉴的基础上实现了自己的任务调度框架,Quartz使用Trigger,Job和JobDetail对象实现调度...
  • yu102655
  • yu102655
  • 2016年09月12日 15:23
  • 646

Spring Quartz 实现多任务定时调用

Spring Quartz 实现多任务定时调用。简单说起来,就是让 Quartz 在指定的时间去帮助我们做指定的业务,达到任务调度与任务定时的目的。...
  • u011244202
  • u011244202
  • 2017年01月12日 22:15
  • 356
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring结合Quartz实现多任务定时调用
举报原因:
原因补充:

(最多只允许输入30个字)