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
转载于:https://www.cnblogs.com/rookie404/p/5879979.html
spring quartz 配置相关推荐
- JNDI(datasource)在tomcat,JBOSS下的spring+quartz配置
由于项目中多个小应用(类似插件)需要使用数据库连接池,不能为每一个应用中配置连接池.故采用JNDI的模式进行配置. 我们使用的web服务器有tomcat和jboss两种.分别介绍其在这两种服务器下并且 ...
- 使用spring+quartz配置多个定时任务
首先引入 quartz jar包: 创建java类: package com.tcwl.vsmp.loanmgt.message;import com.tcwl.vsmp.external.const ...
- spring中配置quartz定时器
spring中配置quartz定时器 最近项目中用到定时器,项目用的spring所以想在spring中配置一下定时器,看到网上用quartz的比较多,所以就搜了一下.参考:http://blog.cs ...
- quartz配置_基于spring-boot 2.x +quartz 的CRUD任务管理系统
基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目. 开发环境 JDK1.8.Maven.Eclipse 技术栈 SpringBoot 2.0.1.thyme ...
- Spring+Quartz 集群
转载 http://soulshard.iteye.com/blog/337886 单独的Quartz集群在http://unmi.blogjava.net/有Unmi翻译的Quartz Job Sc ...
- Spring+Quartz实现定时任务
Spring整合Quartz实现定时任务步骤很简单,大致需要经过如下几步:创建任务(Job).配置JobDetail.配置触发器(Trigger).配置SchedulerFactoryBean 首先使 ...
- spring+quartz实现定时调度
spring+quartz实现任务调度在web应用启动时调度工厂就启动,web应用停止时,调度工厂也就停止工作,这种和web应用一致的声明周期很适合来实现任务调度,下面介绍使用方法. (一)需要的ja ...
- 解决Spring+Quartz无法自动注入bean问题
问题 我们有时需要执行一些定时任务(如数据批处理),比较常用的技术框架有Spring + Quartz中.无奈此方式有个问题:Spring Bean无法自动注入. 环境:Spring3.2.2 + Q ...
- 基于spring+quartz的分布式定时任务框架
http://www.cnblogs.com/aaronfeng/p/5537177.html 问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比 ...
最新文章
- 软件BT是硬盘杀手?
- java解析mqtt_物联网安全系列 | MQTT协议安全
- [剑指offer]面试题第[65]题[JAVA][不用加减乘除做加法][位运算]
- Sass函数:random()函数
- 计算机网络学习笔记(2. 什么是网络协议)
- 分享JTooltips 0.2beta版Demo
- vue 创建项目时报错yorkie: Command failed.
- word下载哪一个比较好
- 物品分类游戏html5,幼儿物品分类教案
- 狼奔权限管理系统开源啦
- 前端案例:蓝色CSS3二级导航菜单
- icc校色文件使用教程_浅谈如何用ICC文件进行校色,校色前后效果展示
- C51与4*4矩阵键盘
- MySQL教程——MySQL注释:单行注释和多行注释
- MFC多线程 信号量CSemaphore 临界区与互斥 事件
- 二本毕业生如何从苦逼到强大的求职记(鲍金勇)
- matlab中绘制一个sin函数曲线
- Web前端学习笔记(十一)---聚光灯效果
- 物流系统(简单er图)
- 基于51单片机的教室智能照明控制系统