spring启动quartz定时器
在很多中经常要用到定时任务,quartz是定时器中比较好用的,在Spring中使用quartz是很容易的事情,首先在spring的applicationContext.xml文件中增加如下配置:
<!-- quartz定时器定义 --> <!-- 要调用的工作类,即任务处理类 --> <bean id="quartzJob" class="com.mdnet.travel.core.model.QuartzJob"></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> <!-- 定义触发时间 和下面的CronTrigger类型选其一 --> <bean id="doTime" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="startDelay"> <value>1000</value> </property> <property name="repeatInterval"> <value>3000</value> </property> <property name="jobDetail"> <ref local="jobtask" /> </property> </bean> <!-- CronTigger类型 --> <!-- <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobtask" /> </property> <property name="cronExpression"> <value>2</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" /> </list> </property> </bean>
其中bean startQuertz是quartz的入口,该bean参考bean doTime, doTime bean中描述定时器参数,像循环周期等,在doTime bean中参考jobtask bean,jobtask bean指定了实际处理定时任务的quartzJob bean,quartzJob中指定了具体定时器处理类和具体的处理方法。
在本例中启动的简单定时器,复杂定时器可以参见配置中CrinTrigger部分。
本类中定时器的具体处理类是com.mdnet.travel.core.model.QuartzJob,在com.mdnet.travel.core.model.QuartzJob中work是定时任务的处理方法,具体任务处理类如下:
public class QuartzJob {
@Resource(name = ISMSService.SERVICE_NAME)
protected ISMSService smsService;
public static int quartzCount; public boolean isNumeric(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
} public void work() {
//todo 定时任务处理方法,添加你的任务处理代码 }
}
祝顺利,德安工作室 2014年6月26日
spring启动quartz定时器的更多相关文章
- Spring的quartz定时器同一时刻重复执行二次的问题解决
最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此. 打印出他们的hashcode,发现是不一样的,也就是说,在web容器启动的时候, ...
- Spring的quartz定时器重复执行二次的问题解决
Spring的quartz定时器同一时刻重复执行二次的问题解决 最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此. 打印出他们的ha ...
- 关于Spring的Quartz定时器设定
在实际的开发业务中经常会遇到定时执行某个任务,如果项目使用的ssh框架的话,就需要配合spring来使用定时器.spring的定时器是一个固定的配置格式,具体的applicationContext配置 ...
- Spring集成Quartz定时器
<!-- Spring集成Quartz开始 --> <bean id="startQuertz" lazy-init="false" auto ...
- Spring整合Quartz定时器
1.添加jar #此处省略spring核心jar包 <dependency> <groupId>org.quartz-scheduler</groupId> < ...
- 【spring配置】——spring整合Quartz定时器
第一种:为普通java类中的某个方法配置跑批任务 MethodInvokingJobDetailFactoryBean CronTriggerBean SchedulerFactoryBean 1.定 ...
- 基于spring和Quartz定时器
最近做一个小项目,要每7天去调用webservice获取一次数据.所以就用定时器来完成spring是4.1.6,quartz是2.2.1. 首先配置spring的xml文件.首先定义你要被执行的类 & ...
- 使用spring配置quartz定时器
quartz是石英钟的意思,所以用这个名字来做定时器的框架名称再适合不过.一年前做项目的时候有用过这个框架,当时没有整理,今天刚好新的商城系统也需要定时器.想要达到的效果是:每天的固定时间,比如凌晨3 ...
- spring与quartz定时器
参考: http://www.iteye.com/topic/399980 http://www.cnblogs.com/xrab/p/5850186.html
随机推荐
- 2、cas4.0 单点登录 之 cas-client
cas4.0 单点登录 之 cas-client cas4.0 单点登录 之 https证书已经做好了证书的准备工作.如今结合cas-server来配置单点登录: 一.安装cas服务端(cas-ser ...
- 我是怎样理解web页面的
事实上web页面包括三部分东东 1.页面展示的元素(HTML) 2.页面元素展示的样式(CSS) 3.控制页面元素的交互(JavaScript) 不管页面多么复杂,从这三方面去看,都会得到清晰的认识的 ...
- JS常用正则表达式大全
转载自:http://blog.csdn.net/lun379292733/article/details/8169807/ <script type="text/JavaScript ...
- call_user_func — 把第一个参数作为回调函数调用
call_user_func — 把第一个参数作为回调函数调用 说明 mixed call_user_func ( callable $callback [, mixed $parameter [, ...
- Dual Camera Info
一个摄像头解决不了的问题,那就用两个:对于双摄你需要了解这些 http://www.chengshiluntan.com/wg/a/20160715/6ca0343f59789235c9419887f ...
- struts2在项目中的应用之下载
文件下载是一个非经常见的功能,用struts2实现文件下载的步骤: 一)定义一个Action类.FileDownload.java package com.struts2.filedownload; ...
- nginx proxy_pass 里的”/”
见配置,摘自nginx.conf 里的server 段: server { listen 80; server_name abc.163.com ; location / { proxy_pass h ...
- python学习 04 函数参数
1.参数可以传递元组,但是要加* 2.参数可以传递字典,但是要加**
- 解决ubuntukylin下各种终端字母重叠的方案
ubuntukylin14.04什么都挺好定符合中国人的使用习惯的,可是就是终端字母重叠的问题特别严重;(事实上ubuntu14.04也存在这个问题) 导致非常多非常好用的终端都使用不了,像guake ...
- systemctl使用说明
# systemctl #输出已激活单元 # systemctl list-units #输出已激活单元 # systemctl --failed #输出运行失败的单元 # systemctl lis ...