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定时任务集群 >>>>>>>>>>>>>> ...
随机推荐
- hdu1850nim博弈输出问题
和之前一道题是类似的,输出第一步走的方法,遍历数组找到a[i]^s<a[i]的那个数a[i]-a[i]^s就是要取的数 #include<map> #include<set&g ...
- 在不同的浏览器使用不同的css样式,解决浏览器兼容问题
区别IE6与FF: background:orange; *background:blue; 区别IE6与IE7: background:green !import ...
- Dubbo原理简介、与Zookeeper整合利用
官方文档:http://dubbo.io/books/dubbo-user-book/ Dubbo的简单介绍 Dubbo是一个分布式服务框架,架构如图: 节点角色说明: Provider: 暴露服务的 ...
- [ccf 4] 网络延时
网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为 1.他的交换机都连 ...
- CSS中em、rem和px的区别
任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=16px,1rem=16px. EM特点 1. em的值并不是固定的: 2. em会继承父级元素的字体大小. rem特点 r ...
- Xcode 7.0 Could not find developer disk image
在使用Xcode 7的真机运行的时候, 出现Could not find developer disk image. 解决方法:先关闭Xcode.再从Xcode 6.4中,拷贝8.4 (12H141) ...
- Class.getResource()方法的使用
我们之前使用路径总是有点不知道怎么用,发现别人使用Class.getResource()方法,好像挺不错的样子.于是看看博客,简单学习下. 参考链接:http://blog.csdn.net/lcj8 ...
- python的单元测试代码编写流程
单元测试: 单元测试是对单独的代码块分别进行测试, 以确保它们的正确性, 单元测试主要还是由开发人员来做, 其余的集成测试和系统测试由专业的测试人员来做. python的单元测试代码编写主要记住以下几 ...
- win10下安装MySQL5.7.20
1. 下载Mysql官方:http://www.mysql.com→downloads→选社区版本MySQL Community Edition(GPL)→点击Community(GPL)Downlo ...
- keras_基本网络层结构(2)_卷积层
参考文献:http://keras-cn.readthedocs.io/en/latest/layers/convolutional_layer/ 卷积层 Conv1D层 keras.layers.c ...