Spring结合Quartz实现多任务定时调用<转>_生 如 夏 花百度空间 | 百度首页 | 登录 生 如 夏 花
心智决定视野、信念决定成败
主页博客相册|个人档案 |好友
查看文章
Spring结合Quartz实现多任务定时调用<转>
2009-06-02 11:28
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/beans
http://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>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<!-- 可继续加新的 -->
<!-- 定义调用对象和调用对象的方法结束 -->
<!-- 定义触发时间 -->
<bean id="doTime"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask"/>
</property>
<!-- cron表达式 此处定义为一直触发执行任务 -->
<property name="cronExpression">
<value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
</property>
</bean>
<bean id="doTime2"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask2"/>
</property>
<!-- cron表达式 此处定义周一至周日的下午13:15触发-->
<property name="cronExpression">
<value>0 15 13 ? * SUN-SAT</value>
</property>
</bean>
<!-- 可继续加新的 -->
<!-- 定义触发时间结束 -->
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime"/>
<ref bean="doTime2"/>
<!-- 可继续加新的 -->
</list>
</property>
</bean>
<!-- 总管理类结束 -->
</beans>
测试程序:
package com.writchie.quartz;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class QuartzService {
public static void main(String[] args) {
System.out.println("测试任务调度开始...");
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
// 如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
// context.getBean("startQuertz");
System.out.print("测试任务调度结束!\n");
}
}
测试结果:
测试任务调度开始...
- Refreshing
org.springframework.context.support.ClassPathXmlApplicationContext@29428e:
display name
[org.springframework.context.support.ClassPathXmlApplicationContext@29428e];
startup date [Sun Mar 01 13:13:21 CST 2009]; root of context hierarchy
- Loading XML bean definitions from class path resource
[applicationContext.xml]
- Bean factory for application context
[org.springframework.context.support.ClassPathXmlApplicationContext@29428e]:
org.springframework.beans.factory.support.DefaultListableBeanFactory@9be79a
- Pre-instantiating singletons in
org.springframework.beans.factory.support.DefaultListableBeanFactory@9be79a:
defining beans
[quartzJob,quartzJobTwo,jobtask,jobtask2,doTime,doTime2,startQuertz]; root
of factory hierarchy
- Job execution threads will use class loader of thread: main
- Quartz Scheduler v.1.5.2 created.
- RAMJobStore initialized.
- Quartz scheduler 'DefaultQuartzScheduler' initialized from default
resource file in Quartz package: 'quartz.properties'
- Quartz sc
没有合适的资源?快使用搜索试试~ 我知道了~
quartz servletcontext配置资料
共47个文件
mht:34个
jpg:4个
xml:3个
2星 需积分: 10 19 下载量 186 浏览量
2009-08-08
11:37:44
上传
评论
收藏 8.86MB RAR 举报
温馨提示
quartz servletcontext quartz servletcontext配置资料quartz servletcontext配置资料
资源推荐
资源详情
资源评论
收起资源包目录
quartz servletcontext.rar (47个子文件)
quartz servletcontext
Spring中Quartz的配置 - Kay's Blog - 博客园.mht 371KB
Quartz使用(二)-与Spring结合 - 胖熊熊 - BlogJava.mht 273KB
怎样使用Spring发邮件? - 自娱自乐 - 51CTO技术博客.mht 205KB
Timer, Quartz 和 Spring 实现作业调度 - Java - JavaEye论坛.mht 353KB
详细讲解Quartz如何从入门到精通 — JAVA频道 - 赛迪网4.mht 200KB
利用spring的ApplicationContext在程序中唤醒quartz的job - dolphin_ygj - JavaEye技术网站d.mht 350KB
remotingContext.xml 6KB
quartz.properties 3KB
详细讲解Quartz如何从入门到精通 — JAVA频道 - 赛迪网6.mht 117KB
Spring配置Quartz例子 - 盘古党 - JavaEye技术社区.mht 296KB
540075.jpg 66KB
在Spring框架中集成Quartz实现任务调度_Java技术文章_Java_软件编程.mht 120KB
quartz-1.6.5.zip 5.43MB
利用spring的ApplicationContext在程序中唤醒quartz的job - dolphin_ygj - JavaEye技术网站.mht 350KB
spring 中 quartz 与 数据库 db 相关操作会出现的问题汇总 - Kim-'s-Blog_Object-Everything_I'm POJO_ - BlogJava.mht 253KB
spring+quartz配置_Java技术文章_Java_软件编程.mht 81KB
详细讲解Quartz如何从入门到精通 — JAVA频道 - 赛迪网5.mht 149KB
j-quartz-noJars.zip 10KB
web.xml 4KB
Spring Quartz如何动态配置时间 - 飘一代 - 51CTO技术博客.mht 290KB
quartz-all-1.6.1.jar 449KB
540071.jpg 50KB
用 Quartz 进行作业调度.mht 403KB
quartz和应用的集群问题 - 企业应用 - Java - JavaEye论坛.mht 433KB
详细讲解Quartz如何从入门到精通 — JAVA频道 - 赛迪网3.mht 65KB
540077.jpg 66KB
使用Spring Quartz定时发邮件 - oliu的博客 - JavaEye技术网站.mht 355KB
dsreliweb-servlet.xml 2KB
使用Spring Quartz执行定时任务 - SoA爱好者 - BlogJava.mht 264KB
Spring结合Quartz实现多任务定时调用转_生 如 夏 花.txt 12KB
详细讲解Quartz如何从入门到精通 — JAVA频道 - 赛迪网1.mht 70KB
浅谈Spring中的Quartz配置 - 51CTO_COM.mht 347KB
quartz在spring中调度任务并写入数据库出现异常,求解 - fangbiao23 - JavaEye技术网站.mht 405KB
Spring + Quartz配置实例 - 心如止水 一心向佛 - BlogJava.mht 266KB
Spring使用Quartz配置调度事务 - esffor - JavaEye技术网站.mht 371KB
log4j-1.2.15.jar 383KB
java-spring和quartz - Badwood-涂鸦 - 博客园.mht 292KB
详细讲解Quartz如何从入门到精通 — JAVA频道 - 赛迪网2.mht 128KB
Spring配置Quartz例子 - 作孽终有报 - JavaEye技术网站.mht 362KB
Spring + Quartz 轻松搞定web任务定时调度 - meconsea留痕 - CSDN博客.mht 155KB
怎样在spring的quartz_JobDetail中获取sevletContext实例? - JavaEye问答.mht 310KB
Quartz 在 Spring 中如何动态配置时间 - Spring - Java - JavaEye论坛.mht 446KB
540073.jpg 37KB
Spring Quartz任务调度示例 - 杂家 - BlogJava.mht 313KB
[转]Quartz实例 - Spring - Java - JavaEye论坛.mht 360KB
spring quartz例子? - JavaEye问答.mht 304KB
对quartz的总结 - Spring - Java - JavaEye论坛.mht 435KB
共 47 条
- 1
资源评论
- s_zxpeng2018-11-20不符合自己想要的,白下载了
- cyk9682011-09-22配置的servletcontext没生效!
jinbingchuan
- 粉丝: 0
- 资源: 69
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 120 240 VAC_ASD-4D5 -ASD-006.IGS
- WinCHM.exe CHM 文档编辑器
- FileGeeCNP.exe
- record record record record record record record record record
- Android 启动提示Android 正在升级...提示源码分析
- pojie-drawio-confluence-plugin-9.5.8.obr
- 信息学奥赛2020年NOIP真题
- SunloginClient-15.1.0.58718-x64.exe
- 信息学奥赛2021年NOIP真题
- 星辰语义大模型TeleChat超详细部署文档手册
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功