Quartz多个定时任务的配置

1,配置文件与spring整合,需要在spring 的总配置中一入或者在web.xml中spring监听中加上

ztc_cp-spring-quartz.xml

注:定时器出触发的时间,根据需要自己设置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="
  5. http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
  7. <!-- spring自动任务调度器配置 -->
  8. <!-- 要调用的工作类 -->
  9. <bean id="quartzJob1" class="cn.hydom.ztc.ztc_cp.quartz.QuartzJob1"></bean>
  10. <bean id="quartzJob2" class="cn.hydom.ztc.ztc_cp.quartz.QuartzJob2"></bean>
  11. <bean id="quartzJob3" class="cn.hydom.ztc.ztc_cp.quartz.QuartzJob2"></bean>
  12. <!-- 任务配置列表 -->
  13. <bean id="jobtask1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  14. <!-- 调用的类 -->
  15. <property name="targetObject">
  16. <ref bean="quartzJob1" />
  17. </property>
  18. <!-- 调用类中的方法 -->
  19. <property name="targetMethod">
  20. <value>work</value>
  21. </property>
  22. <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
  23. <property name="concurrent" value="false"/>
  24. </bean>
  25. <bean id="jobtask2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  26. <!-- 调用的类 -->
  27. <property name="targetObject">
  28. <ref bean="quartzJob2" />
  29. </property>
  30. <!-- 调用类中的方法 -->
  31. <property name="targetMethod">
  32. <value>work</value>
  33. </property>
  34. </bean>
  35. <bean id="jobtask3" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  36. <!-- 调用的类 -->
  37. <property name="targetObject">
  38. <ref bean="quartzJob3" />
  39. </property>
  40. <!-- 调用类中的方法 -->
  41. <property name="targetMethod">
  42. <value>work</value>
  43. </property>
  44. </bean>
  45. <!-- 触发器配置  时间指定 -->
  46. <bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  47. <property name="jobDetail" ref="jobtask1"></property>
  48. <!-- cron表达式 -->
  49. <property name="cronExpression">
  50. <!-- 每隔10秒执行一次 <value>0/10 * * * * ?</value> -->
  51. <!-- 每天每隔5分钟执行一次 <value>0 0/5 * * * ?</value> -->
  52. <value>0 0/5 * * * ?</value>
  53. <!-- 每天上午8点执行一次 <value>0 0 8 * * ?</value>-->
  54. <!-- 在每天下午16点到下午16:59期间的每1分钟触发 <value>0 * 16 * * ?</value> -->
  55. </property>
  56. </bean>
  57. <bean id="cronTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  58. <property name="jobDetail" ref="jobtask2"></property>
  59. <!-- cron表达式 -->
  60. <property name="cronExpression">
  61. <!-- 每隔10秒执行一次 <value>0/10 * * * * ?</value> -->
  62. <!-- 每天每隔10分钟执行一次 <value>0 0/10 * * * ?</value> -->
  63. <!-- <value>0 0/10 * * * ?</value> -->
  64. <!-- 每天上午8点执行一次 <value>0 0 8 * * ?</value>-->
  65. <!-- 在每天下午16点到下午16:59期间的每1分钟触发 <value>0 * 16 * * ?</value> -->
  66. <!-- 每天凌晨1点执行一次 -->
  67. <value>0 0 1 * * ?</value>
  68. </property>
  69. </bean>
  70. <bean id="cronTrigger3" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  71. <property name="jobDetail" ref="jobtask3"></property>
  72. <!-- cron表达式 -->
  73. <property name="cronExpression">
  74. <!-- 每月最后一天23点30分执行一次 -->
  75. <value>0 30 23 L * ?</value>
  76. </property>
  77. </bean>
  78. <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
  79. <bean id="startQuertz" lazy-init="false" autowire="no"
  80. class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  81. <property name="triggers">
  82. <list>
  83. <!-- 触发器列表    -->
  84. <ref bean="cronTrigger1" />
  85. <ref bean="cronTrigger2" />
  86. <ref bean="cronTrigger3" />
  87. </list>
  88. </property>
  89. </bean>
  90. </beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <!-- spring自动任务调度器配置 --> <!-- 要调用的工作类 -->
<bean id="quartzJob1" class="cn.hydom.ztc.ztc_cp.quartz.QuartzJob1"></bean>
<bean id="quartzJob2" class="cn.hydom.ztc.ztc_cp.quartz.QuartzJob2"></bean>
<bean id="quartzJob3" class="cn.hydom.ztc.ztc_cp.quartz.QuartzJob2"></bean> <!-- 任务配置列表 -->
<bean id="jobtask1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob1" />
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
<!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
<property name="concurrent" value="false"/>
</bean>
<bean id="jobtask2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob2" />
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<bean id="jobtask3" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob3" />
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean> <!-- 触发器配置 时间指定 -->
<bean id="cronTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobtask1"></property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每隔10秒执行一次 <value>0/10 * * * * ?</value> -->
<!-- 每天每隔5分钟执行一次 <value>0 0/5 * * * ?</value> -->
<value>0 0/5 * * * ?</value>
<!-- 每天上午8点执行一次 <value>0 0 8 * * ?</value>-->
<!-- 在每天下午16点到下午16:59期间的每1分钟触发 <value>0 * 16 * * ?</value> -->
</property>
</bean>
<bean id="cronTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobtask2"></property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每隔10秒执行一次 <value>0/10 * * * * ?</value> -->
<!-- 每天每隔10分钟执行一次 <value>0 0/10 * * * ?</value> -->
<!-- <value>0 0/10 * * * ?</value> -->
<!-- 每天上午8点执行一次 <value>0 0 8 * * ?</value>-->
<!-- 在每天下午16点到下午16:59期间的每1分钟触发 <value>0 * 16 * * ?</value> -->
<!-- 每天凌晨1点执行一次 -->
<value>0 0 1 * * ?</value>
</property>
</bean>
<bean id="cronTrigger3" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobtask3"></property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每月最后一天23点30分执行一次 -->
<value>0 30 23 L * ?</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="cronTrigger1" />
<ref bean="cronTrigger2" />
<ref bean="cronTrigger3" />
</list>
</property>
</bean> </beans>

2,编写工作类

QuartzJob1.java QuartzJob2.java QuartzJob3.java

这3个类都一样,这里只写QuartzJob1,如果统一时间有多个任务要执行,可拆分成多个方法,在work方法中统一调用

  1. package cn.hydom.ztc.ztc_cp.quartz;
  2. import javax.annotation.Resource;
  3. import org.apache.commons.logging.Log;
  4. import org.apache.commons.logging.LogFactory;
  5. import cn.hydom.ztc.ztc_cp.service.CarParkService;
  6. /**
  7. * @Description: 定时器
  8. * @author whl
  9. * @date 2014-10-22
  10. */
  11. public class QuartzJob1 {
  12. //log4j
  13. private static final Log log = LogFactory.getLog("");
  14. @Resource
  15. private CarParkService carParkService;
  16. /**
  17. * @Description: 定时任务调度主方法
  18. * @param
  19. * @return void
  20. * @throws
  21. * @author whl
  22. * @date 2014-10-22
  23. */
  24. public void work(){
  25. task1();
  26. }
  27. //扫描xxx
  28. public void task1(){
  29. log.warn("QuartzJob1.task1()  每隔5分钟执行一次");
  30. }
  31. }

spring Quartz多个定时任务的配置的更多相关文章

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

    问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比较快,因此,开发人员花费了更多的时间去更=跟上迭代的步伐,而缺乏了对整个系统的把控 没有集群之前 ...

  2. Spring—Quartz定时调度CronTrigger时间配置格式的实例

    格式说明:[秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小 ...

  3. Spring—Quartz定时调度CronTrigger时间配置格式说明与实例

    1 .CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 ...

  4. Spring+quartz 实现定时任务job集群配置

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

  5. Spring+quartz 实现定时任务job集群配置【原】

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

  6. spring的Scheduled(定时任务)和多线程

    一.前言 在我们日常的开发中,经常用到数据同步的更新,这时我们采用的是spring的定时任务和java的多线程进行数据的更新,进行时实的服务调用. 二.实现思路            1.创建线程类 ...

  7. spring boot 基础篇 -- 定时任务

    在日常项目中,常常会碰到定时监控项目中某个业务的变化,下面是spring boot 集成的定时任务具体配置: @Component public class IndexWarningScheduled ...

  8. Spring Boot整合Quartz实现定时任务表配置

    最近有个小项目要做,spring mvc下的task设置一直不太灵活,因此在Spring Boot上想做到灵活的管理定时任务.需求就是,当项目启动的时候,如果有定时任务则加载进来,生成schedule ...

  9. Spring+Quartz 实现定时任务的配置方法

    Spring+Quartz 实现定时任务的配置方法 整体介绍 一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是 ...

随机推荐

  1. [CareerCup] 6.6 Toggle Lockers 切换锁的状态

    6.6 There are 100 closed lockers in a hallway. A man begins by opening all 100 lockers. Next, he clo ...

  2. SQLite剖析之数据类型

    许多SQL数据库引擎(除SQLite之外的各种SQL数据库引擎)使用静态.严格的数据类型.对于静态类型,一个值的数据类型由它的容器,即存储这个值的列来决定.SQLite则使用更加通用的动态类型系统.在 ...

  3. 【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介

    ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东 ...

  4. bzoj1584

    1584: [Usaco2009 Mar]Cleaning Up 打扫卫生 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 467  Solved: 31 ...

  5. javascript学习笔记10----字符串的基本操作

    1.字符串的基本操作如下: 定义字符串: var str = "Hello World!" 字符串的基本操作如下: str.length-----返回字符串长度,这里返回12 st ...

  6. WPF基础到企业应用系列6——布局全接触

    本文转自:http://knightswarrior.blog.51cto.com/1792698/365351 一. 摘要 首先很高兴这个系列能得到大家的关注和支持,这段时间一直在研究Windows ...

  7. [uva11722&&cogs1488]和朋友会面Joining with Friend

    几何概型,<训练指南>的题.分类讨论太神啦我不会,我只会萌萌哒的simpson强上~这里用正方形在y=x-w的左上方的面积减去在y=x+w左上方的面积就是两条直线之间的面积,然后切出来的每 ...

  8. mysql关联表的复制

    1. 复制被参照的表: CREATE TABLE clone_product_1 LIKE product_1; INSERT INTO clone_product_1 SELECT * FROM p ...

  9. 个人学习记录1:二维数组保存到cookie后再读取

    二维数组保存到cookie后再读取 var heartsArray = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0],[0,0, ...

  10. TCP中的RST复位信号

    TCP中的RST复位信号 在TCP协议中RST表示复位,用来关闭异常的连接,在TCP的设计中它是不可或缺的. 发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包.而接收 ...