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定时任务集群 >>>>>>>>>>>>>> ...
随机推荐
- 一张思维导图教你使用google一下
导图总览 google搜索技巧.png 双引号 代表完全匹配搜索 也就是说搜索结果返回的页面包含双引号中出现的所有的词,连顺序也必须完全匹配 例如搜索"java 排序"与无引号的j ...
- 两个值相等的Integer的==比较问题
@Test public void testIntegerEqual() { /** -128~127 之外的数**/ Integer tem = 129; ...
- 记录vue中一些有意思的坑
记录vue中一些有意思的坑 'message' handler took 401ms 在出现这个之前,我一直纠结于 是如何使用vue-router或者不使用它,通过类似的v-if来实现.结果却出现这个 ...
- JavaScript学习总结(二十二)——JavaScript屏蔽Backspace键
今天在IE浏览器下发现,当把使用readonly="readonly"属性将文本框设置成只读<input type="text" readonly=&qu ...
- Swagger使用总结(十九)
1. Swagger是什么? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. 官方说法:Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTfu ...
- c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库
///c# winform 操作oracle数据库的Blob字段,把图片存储到数据库,保存图片到数据库 闲话不多说,直接上代码 using System; using System.Collectio ...
- bzoj3393
题解: spfa 允许多次进队 代码: #include<bits/stdc++.h> using namespace std; struct que{int x,y,dire,dist; ...
- IP地址分配机构
IP地址分配机构 全球ip地址分配机构 互联网编号分配机构(IANA,Internet Assigned Numbers Authority)负责分配和规划IP地址,以及对TCP/UDP公共服务的端口 ...
- maven打包资源文件(转)
原文链接:http://blog.csdn.net/u012849872/article/details/51035938 maven工程标准目录结构: src -main –bin ...
- Django 之 Ajax
此次主要是做省市区的三级联动. 环境:django 1.10 1. urls.py # coding:utf-8 from django.conf.urls import url import vie ...