spring quartz 配置
quartz简介
各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务。任务调度本身涉及到多线程并发、运行时间规则制定和解析、场景保持与恢复、线程池维护等诸多方面的工作。如果直接使用自定义线程这种刀耕火种的原始办法,开发任务调度程序是一项颇具挑战性的工作。Java开源的好处就是:领域问题都能找到现成的解决方案。Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。此外,Quartz提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失。此外,Quartz还提供了组件式的侦听器、各种插件、线程池等功能。
1.调度类
public class QuartzJobImpl{public void dailyCount() {
        System.out.println("每日统计开始...");
        System.out.println("-------------");
        System.out.println("每日统计结束...");
    }
    public void redisUpdate2Mysql() {
        System.out.println("定时任务开始...");
        System.out.println("-------------");
        System.out.println("-------------");
        System.out.println("定时任务结束..");
    }
}
2.spring xml文件
<!-- 注入调度类 -->
<bean id="quartzJob" class="xxxx.QuartzJobImpl"/>
<!-- 任务调度拦截 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 拦截的类 -->
<property name="targetObject">
<ref bean="quartzJob"/>
</property>
<!-- 具体的方法 -->
<property name="targetMethod">
<value>redisUpdate2Mysql</value>
</property>
</bean>
<bean id="jobtask1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="quartzJob"/>
</property>
<property name="targetMethod">
<value>dailyCount</value>
</property>
</bean>
<bean id="dotime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- 指定执行的任务-->
<property name="jobDetail">
<ref bean="jobtask1"/>
</property>
<!-- 时间配置 -->
<property name="cronExpression">
<value>0 52 14 ? * *</value>
</property>
</bean>
<bean id="dotime1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="jobtask1"/>
</property>
<property name="cronExpression">
<value>0/30 * * * * ?</value>
</property>
</bean>
<!-- 让spring来自动管理quartz -->
<bean id="start" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers" >
<list>
<ref bean="dotime"/>
<ref bean="dotime1"/>
</list>
</property>
</bean>
3.时间配置
<!-- ====================
        字段         允许值     允许的特殊字符
        秒         0-59    , - * /
        分         0-59     , - * /
        小时         0-23     , - * /
        日期         1-31     , - * ? / L W C
        月份         1-12 或者 JAN-DEC    , - * /
        星期         1-7 或者 SUN-SAT    , - * ? / L C #
        年(可选)     留空1970-2099        , - * /
        表达式意义
        "0 0 12 * * ?" 每天中午12点触发
        "0 15 10 ? * *" 每天上午10:15触发
        "0 15 10 * * ?" 每天上午10:15触发
        "0 15 10 * * ? *" 每天上午10:15触发
        "0 15 10 * * ? 2005" 2005年的每天上午10:15触发
        "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
        "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
        "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
        "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
        "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
        "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
        "0 15 10 15 * ?" 每月15日上午10:15触发
        "0 15 10 L * ?" 每月最后一日的上午10:15触发
        "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
        "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
        "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
        每天早上6点
        0 6 * * *
        每两个小时
        0 */2 * * *
        晚上11点到早上8点之间每两个小时,早上八点
        0 23-7/2,8 * * *
        每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
        0 11 4 * 1-3
        1月1日早上4点
        0 4 1 1 *
    ==================== -->
其他知识:http://blog.csdn.net/lotusyangjun/article/details/6524712
spring quartz 配置的更多相关文章
- 使用spring+quartz配置多个定时任务
		
Spring被用在了越来越多的项目中, quartz也被公认为是比较好用的定时器设置工具, 在这里通过一个demo说明如何使用spring和quartz配置多个定时任务. 环境: eclipse + ...
 - spring quartz 配置实现定时任务 详解
		
一. 编写定时任务JAVA类 比如: public class QuartzJob { public QuartzJob(){ System.out.println(" ...
 - 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 quartz 配置及说明
		
方式一,jobDetail的bean利用MethodInvokingJobDetailFactoryBean 工厂包装 : ()定义一个bean,执行具体的业务操作. <bean id=&quo ...
 - 两种流行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定时任务集群 >>>>>>>>>>>>>> ...
 
随机推荐
- python中的argparse模块
			
argparse干什么用的? 答:参数设置,比如python demo.py -h 诸如此类的. 开始学习这个模块: parser = argparse.ArgumentParser() #使用这个模 ...
 - mysql 之修改初始密码
			
转载自:https://www.cnblogs.com/ivictor/p/5142809.html 为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于er ...
 - oracle to_char 返回毫秒级
			
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1, 关键在 systimestamp
 - 根据节点解析xml
			
config.xml文件如下: <?xml version="1.0" encoding="gb2312" ?> <root> < ...
 - CSS3新属性解释及用法
			
一. transition(a标签hover渐隐效果) a:hover{transition: color 0.15s linear 0s, background-color 0.3s linear ...
 - Struts2学习笔记02 之 使用
			
一.页面向Action传参 1.基本属性注入,页面命名name,action提供成员变量name并提供set方法. 2.域模型注入:页面用user.name对象点属性形式.action成员user对象 ...
 - django “如何”系列2:如何编写django-admin 命令
			
应用可以使用manage.py注册自己的动作,例如,你可能想要为你即将发布的应用添加一个manage.py 操作.这节我们将为polls应用添加一个closepoll的命令 添加一个managemen ...
 - hdu 4496(并查集逆向添边)
			
D-City Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Subm ...
 - LeetCode Linked List Cyle
			
Problem Description Given a linked list, determine if it has a cycle in it. Follow up:Can you solve ...
 - 【转载】Python测试框架doctest
			
原文在这里 :Python测试框架doctest 先记录一下,直接复制粘贴后,排版是乱的,后续再弄.