spring quartz 配置及说明
方式一,jobDetail的bean利用MethodInvokingJobDetailFactoryBean 工厂包装 :
()定义一个bean,执行具体的业务操作。
<bean id="updatePersonService" class="com.corop.packname.UpdatePersonService"/>
()定义一个jobDetail,执行业务操作的作业。
<bean id="updatePersonJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 作业要执行的业务操作 bean -->
<property name="targetObject">
<ref bean="updatePersonService" />
</property>
<!-- 业务操作bean里面具体执行业务操作的方法-->
<property name="targetMethod">
<value>updatePerson</value>
</property>
<!-- 作业不并发执行 -->
<property name="concurrent">
<value>false</value>
</property>
</bean>
()定义一个触发器,根据时间表达式定时触发执行作业
<bean id="updatePersonTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 要触发执行的作业 bean -->
<property name="jobDetail">
<ref bean="updatePersonJob" />
</property>
<!-- 触发作业的时间表达式 -->
<property name="cronExpression">
<!--"0 59 23 * * ?" 每天晚上23点59触发-->
<value> * * ?</value>
</property>
</bean>
()定义一个任务调度器
<!--lazy-init=false 容器启动时启动调度器,默认值, singleton='true'这个bean是单独存在的-->
<bean id="startQuertz" lazy-init="false" singleton='true' autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<!--触发器列表-->
<list>
<ref local="updatePersonTrigger"/>
</list>
</property>
<!--自动启动调度器器-->
<property name="autoStartup">
<value>true</value>
</property>
</bean>
方式二,jobDetail采用继承QuartzJobBean的方式:
()定义的业务操作bean继承QuartzJobBean,重载方法 executeInternal(JobExecutionContext jobexecutioncontext) ,执行具体的业务操作。
class UpdatePersonService extends QuartzJobBean{
private Person person;
public void setPerson(Person person){
this.person = person;
}
@Override
public void executeInternal(JobExecutionContext ctx){
throws JobExecutionException
//执行具体的业务操作
String param1 = ctx.getJobDetail().getJobDataMap().getString("param1");
}
}
()定义jobDetail的bean :
<bean id = 'updatePersonJob' class= 'org.springframework.scheduling.quartz.JobDetailBean'>
<!--定义业务操作类-->
<property name="jobClass" value = 'com.corop.packname.UpdatePersonService' />
<!--定义执行业务操作需要的参数 -->
<property name="jobDataAsMap">
<map>
<entry key="timeout" value="" />
<!-- 此参数是一个bean -->
<entry key="person" value-ref = 'personBean' />
<!--可以从作业执行容器获取此参数-->
<entry key="param1" value="com.custom.package.ClassName"/>
</map>
</property>
</bean>
<bean id = 'personBean' class= 'com.corop.packname.Person'/>
()定义触发器,及()定义核心调度器 与 方式一同。
spring quartz 配置及说明的更多相关文章
- 使用spring+quartz配置多个定时任务
Spring被用在了越来越多的项目中, quartz也被公认为是比较好用的定时器设置工具, 在这里通过一个demo说明如何使用spring和quartz配置多个定时任务. 环境: eclipse + ...
- spring quartz 配置实现定时任务 详解
一. 编写定时任务JAVA类 比如: public class QuartzJob { public QuartzJob(){ System.out.println(" ...
- spring quartz 配置
quartz简介 各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务.任务调度本身涉及到多线程 ...
- spring quartz 配置多个定时任务
1.配置文件-quartz-1.7.3jar spring版本为3.1.3jar <?xml version="1.0" encoding="UTF-8&quo ...
- Spring+Quartz配置定时任务
一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是出了名的任务调度框架,它可以与J2SE和J2EE应用程序相结合 ...
- Spring + Quartz配置实例
Spring为创建Quartz的Scheduler.Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处.此外Spring还提供了一些便 ...
- 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz
1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...
- Spring+quartz 实现定时任务job集群配置
为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...
- Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群
Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群 >>>>>>>>>>>>>> ...
随机推荐
- 使用POI设置导出的EXCEL锁定指定的单元格
注:要锁定单元格需先为此表单设置保护密码,设置之后此表单默认为所有单元格锁定,可使用setLocked(false)为指定单元格设置不锁定. sheet.protectSheet("&quo ...
- python学习笔记(四)---python不能输出中文问题
只需要在所有代码的最前面加上:#coding:utf-8 即可
- zookeeper的安装和部署
参考: https://testerhome.com/topics/11361 http://blog.csdn.net/lihao21/article/details/51778255 https: ...
- 为什么不建议将 font-size 设置为 12px 以下?如果一定要设置为 12px 以下要怎么做?
问题:为什么不建议将 font-size 设置为 12px 以下?如果一定要设置为 12px 以下要怎么做? 先看看把 font-size 设置为 12px 以下时的效果:(浏览器为 Chrome 5 ...
- Python3 运算符(八)
什么是运算符? 举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 ...
- Junit4与junt3并存时产生的问题
目前的项目里用junit写单元测试,使用的是junit4,由于大部分开发之前使用的都是junit3,对junit4还不是很熟悉,所以出现了junit3和4混合使用的情况,导致发生了一些问题,这里列举一 ...
- 201621123010《Java程序设计》第3周学习总结
1.本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1 写出你认 ...
- 怎样配置visio的数据库驱动程序
怎样配置visio的数据库驱动程序 百度师傅最快的到家服务,最优质的电脑清灰 在使用visio进行反向工程画数据库模型图时,需要进行数据库驱动程序的配置.下面以visio2003给大家演示怎样配置 ...
- 使用eclipse启动系统时报错“ java.lang.OutOfMemoryError: PermGen space”问题的解决
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/76571611 本文出自[我是干勾鱼的博客] 有的时候,使用eclipse启动系统 ...
- HDU1501 dfs
像这样有维度的一定要记忆化啊........... #include<cstdio> #include<cstdlib> #include<iostream> #i ...