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 配置相关推荐

  1. JNDI(datasource)在tomcat,JBOSS下的spring+quartz配置

    由于项目中多个小应用(类似插件)需要使用数据库连接池,不能为每一个应用中配置连接池.故采用JNDI的模式进行配置. 我们使用的web服务器有tomcat和jboss两种.分别介绍其在这两种服务器下并且 ...

  2. 使用spring+quartz配置多个定时任务

    首先引入 quartz jar包: 创建java类: package com.tcwl.vsmp.loanmgt.message;import com.tcwl.vsmp.external.const ...

  3. spring中配置quartz定时器

    spring中配置quartz定时器 最近项目中用到定时器,项目用的spring所以想在spring中配置一下定时器,看到网上用quartz的比较多,所以就搜了一下.参考:http://blog.cs ...

  4. quartz配置_基于spring-boot 2.x +quartz 的CRUD任务管理系统

    基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目. 开发环境 JDK1.8.Maven.Eclipse 技术栈 SpringBoot 2.0.1.thyme ...

  5. Spring+Quartz 集群

    转载 http://soulshard.iteye.com/blog/337886 单独的Quartz集群在http://unmi.blogjava.net/有Unmi翻译的Quartz Job Sc ...

  6. Spring+Quartz实现定时任务

    Spring整合Quartz实现定时任务步骤很简单,大致需要经过如下几步:创建任务(Job).配置JobDetail.配置触发器(Trigger).配置SchedulerFactoryBean 首先使 ...

  7. spring+quartz实现定时调度

    spring+quartz实现任务调度在web应用启动时调度工厂就启动,web应用停止时,调度工厂也就停止工作,这种和web应用一致的声明周期很适合来实现任务调度,下面介绍使用方法. (一)需要的ja ...

  8. 解决Spring+Quartz无法自动注入bean问题

    问题 我们有时需要执行一些定时任务(如数据批处理),比较常用的技术框架有Spring + Quartz中.无奈此方式有个问题:Spring Bean无法自动注入. 环境:Spring3.2.2 + Q ...

  9. 基于spring+quartz的分布式定时任务框架

    http://www.cnblogs.com/aaronfeng/p/5537177.html 问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比 ...

最新文章

  1. 软件BT是硬盘杀手?
  2. java解析mqtt_物联网安全系列 | MQTT协议安全
  3. [剑指offer]面试题第[65]题[JAVA][不用加减乘除做加法][位运算]
  4. Sass函数:random()函数
  5. 计算机网络学习笔记(2. 什么是网络协议)
  6. 分享JTooltips 0.2beta版Demo
  7. vue 创建项目时报错yorkie: Command failed.
  8. word下载哪一个比较好
  9. 物品分类游戏html5,幼儿物品分类教案
  10. 狼奔权限管理系统开源啦
  11. 前端案例:蓝色CSS3二级导航菜单
  12. icc校色文件使用教程_浅谈如何用ICC文件进行校色,校色前后效果展示
  13. C51与4*4矩阵键盘
  14. MySQL教程——MySQL注释:单行注释和多行注释
  15. MFC多线程 信号量CSemaphore 临界区与互斥 事件
  16. 二本毕业生如何从苦逼到强大的求职记(鲍金勇)
  17. matlab中绘制一个sin函数曲线
  18. Web前端学习笔记(十一)---聚光灯效果
  19. 物流系统(简单er图)
  20. 基于51单片机的教室智能照明控制系统

热门文章

  1. laravel递增或者递减
  2. matplotlib中关于画布的相关知识总结
  3. 在线闹钟html代码复制,HTML5 提醒事项界面设计+闹铃动画
  4. Web后台管理框架收集,后台模板
  5. thinkcmf自动采集文章主动推送给搜索引擎自动安装
  6. 鹅厂Tencent面试题
  7. 你知道PPT免费翻译软件有哪些吗?
  8. win10 U盘安装ubuntu16.04双系统
  9. 中国大学MOOC视频字幕下载2.0(2020.08.05更新)
  10. 2023年电子竞技行业报告