Spring+Quartz实现定时任务的配置方法
1、Scheduler的配置
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="testTrigger"/>
</list>
</property>
<property name="autoStartup" value="true"/>
</bean>
说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。
2、Trigger的配置
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="testJobDetail"/>
<property name="cronExpression" value="*/1 * * * * ?"/><!-- 每隔1秒钟触发一次 -->
</bean>
说明:
1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。
字段名 允许的值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L C #
年 (可选字段) empty, 1970-2099 , - * /
“?”字符:表示不确定的值
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五
2)Cron表达式范例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
<cron-expression>0 0/30 * * * ?</cron-expression>:每隔30分钟
<cron-expression>0 0/15 * * * ?</cron-expression>每隔15分钟
<cron-expression>0 0 0/1 * * ?</cron-expression>每隔1个小时
3、JobDetail的配置
<bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="testJob"/>
<property name="targetMethod" value="execute"/>
<property name="concurrent" value="false"/>
<!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
</bean>
4、业务类的配置
<bean id="testJob" class="com.cjm.web.service.quartz.TestJob"/>
5、业务类源代码
public class TestJob {
public void execute(){
try{
//.......
}catch(Exception ex){
ex.printStackTrace();
}
}
}
说明:业务类不需要继承任何父类,也不需要实现任何接口,只是一个普通的java类。
注意:
在Spring配置和Quartz集成内容时,有两点需要注意
1、在<Beans>中不能够设置default-lazy-init="true",否则定时任务不触发,如果不明确指明default-lazy-init的值,默认是false。
2、在<Beans>中不能够设置default-autowire="byName"的属性,否则后台会报org.springframework.beans.factory.BeanCreationException错误,这样就不能通过Bean名称自动注入,必须通过明确引用注入
1、Scheduler的配置
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="testTrigger"/>
</list>
</property>
<property name="autoStartup" value="true"/>
</bean>
说明:Scheduler包含一个Trigger列表,每个Trigger表示一个作业。
2、Trigger的配置
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="testJobDetail"/>
<property name="cronExpression" value="*/1 * * * * ?"/><!-- 每隔1秒钟触发一次 -->
</bean>
说明:
1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。
字段名 允许的值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L C #
年 (可选字段) empty, 1970-2099 , - * /
“?”字符:表示不确定的值
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五
2)Cron表达式范例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
<cron-expression>0 0/30 * * * ?</cron-expression>:每隔30分钟
<cron-expression>0 0/15 * * * ?</cron-expression>每隔15分钟
<cron-expression>0 0 0/1 * * ?</cron-expression>每隔1个小时
3、JobDetail的配置
<bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="testJob"/>
<property name="targetMethod" value="execute"/>
<property name="concurrent" value="false"/>
<!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
</bean>
4、业务类的配置
<bean id="testJob" class="com.cjm.web.service.quartz.TestJob"/>
5、业务类源代码
public class TestJob {
public void execute(){
try{
//.......
}catch(Exception ex){
ex.printStackTrace();
}
}
}
说明:业务类不需要继承任何父类,也不需要实现任何接口,只是一个普通的java类。
注意:
在Spring配置和Quartz集成内容时,有两点需要注意
1、在<Beans>中不能够设置default-lazy-init="true",否则定时任务不触发,如果不明确指明default-lazy-init的值,默认是false。
2、在<Beans>中不能够设置default-autowire="byName"的属性,否则后台会报org.springframework.beans.factory.BeanCreationException错误,这样就不能通过Bean名称自动注入,必须通过明确引用注入
发表评论
-
Java身份证验证方法
2015-11-25 11:14 574Java身份证验证方法 package com.tg.user ... -
java 中文乱码问题
2015-06-30 22:19 424JAVA之编码---->CSV在文 ... -
java如何将错误的堆栈信息写入日志
2015-04-13 15:03 1186最近在写代码的时候,在写日志的时候用e.getMessage( ... -
JAVA中去掉空格
2015-03-27 09:42 523JAVA中去掉空格 1. String.trim ... -
gucie注入学习
2015-01-24 19:36 388http://www.blogjava.net/xylz/ar ... -
Spring的AOP配置
2015-01-21 22:35 356Spring的AOP配置 1.先写一个普通类: packa ... -
记住用户名的,选中复选框则记住用户名和密码,下次登录的时候就方便用户名的登陆
2015-01-17 21:51 807记住用户名的,选中复选框则记住用户名和密码,下次登录的时候就方 ... -
mybatis if 字符串比较注意
2014-12-22 14:39 806正确的写法: <if test='finished= ... -
maven搭建springmvc+spring+mybatis实例
2014-11-30 10:17 872maven管理的springmvc+spring+mybat ... -
log4j教程
2014-10-30 10:35 259log4j教程 1. 简介 2. 安装 3. log4j基本 ... -
通过Jersey客户端API调用REST风格的Web服务
2014-10-22 10:12 800通过Jersey客户端API调用REST风格的Web服务 J ... -
redis
2014-09-27 20:25 345java对redis的基本操作 一 ... -
pring + hibernate+ C3P0+MYSQL
2014-08-14 23:49 3441) applicationContext.xml --- ... -
Spring 事物
2014-07-05 06:34 302千山我独行,不必相送... Angi For Ever Spr ... -
BigDecimal.setScale 处理java小数点位数 (BigDecimal、精度、位数)
2014-05-10 13:34 1463BigDecimal.setScale 处理java小数点位数 ... -
JAVA实现SFTP的实例:
2014-05-05 11:44 367最近写的一个JAVA实现SFTP的实例: /* * Crea ... -
Java模拟HTTP的Get和Post请求
2014-04-18 16:52 639import java.io.BufferedReader; ... -
Java发送http请求 (get 与 post方法请求)
2014-04-18 16:38 378java发送http请求 (get 与 post方法请求 ... -
Java 使用 URLConnection 模拟 Http Get和Post 提交
2014-04-18 16:27 6461、URLConnectionHelper ... -
HttpClient4使用
2014-03-24 16:11 352package main;import java.i ...
相关推荐
spring+springMVC+mybatis+quartz动态定时任务
Spring+Quartz实现定时任务的配置方法.rar
基于SSM+quartz的定时任务管理demo
在spring+hibernate的框架中定时操作数据库,主要是拿到sessionFactory,不会出现no session 和transaction no-bound等问题,由sessionFactory完成对数据的操作,有些包是没有用的,有兴趣的可以自己删除掉
spring+quartz的定时任务,希望能帮到大家!
spring+quartz定时小例子,架包+文档 我自己整理的
本项目实现对quartz定时任务的增加、停止、恢复等功能。前端为jQuery+ bootstrap实现可视化操作,附带有mybatis分页插件应用
利用quartz动态操作定时任务,所有配置信息扔到数据库合理管理,同时把运行日志自动添加数据库表中。
上一次传错了资源了,这个是正确的,包含quartz动态定时任务的
Spring + quartz 定时任务修改定时时间不重启服务
Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查,部署到tomcat即可看到定时任务执行效果。本人亲测,可用!
spring+quartz实现动态设置定时任务,自己的例子+心得+sql语句
里面包含了两个工程项目: 1.Java project工程(含jar包,JDK1.6)。 是spring+quartz的任务调度实例。 2.Java web工程(含jar包,JDK1.7)。 spring+mybatis+quartz任务调度实例
基于Spring的Quartz动态定时任务增删改查,代码简洁。后端采用SpringMvc+Spring+Mybatis+Quartz,前端采用Bootstrap框架,数据库采用MySQL;完成定时任务动态任务初始化,增删改查
Spring+Quartz实现定时任务的demo,对应的博客地址为: http://blog.csdn.net/u010397369/article/details/17465649
java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...
Quartz学习文档 Spring + Quartz配置详细实例 jar包 Quartz时间格式设置
Spring+Quartz实现任务调度的小例子.本来不要资源分的,可是CSDN发布资源最低要求填写分值为1分,没办法了。
传统Spring+Quartz实现的定时器一般都是通过配置文件中配置的,这就意味着如果我们修改了定时任务的时间,就得重新启动一下Tomcat,而且每次新建一个任务就得在spring中添加相关的配置信息,非常麻烦。基于上面的...
Spring2.5+Quartz定时任务简单例子web工程 myeclipse 项目开发的,可直接导入运行