spring Quartz多个定时任务的配置
Quartz多个定时任务的配置
1,配置文件与spring整合,需要在spring 的总配置中一入或者在web.xml中spring监听中加上
ztc_cp-spring-quartz.xml
注:定时器出触发的时间,根据需要自己设置
- <?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>

<?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方法中统一调用
- package cn.hydom.ztc.ztc_cp.quartz;
- import javax.annotation.Resource;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import cn.hydom.ztc.ztc_cp.service.CarParkService;
- /**
- * @Description: 定时器
- * @author whl
- * @date 2014-10-22
- */
- public class QuartzJob1 {
- //log4j
- private static final Log log = LogFactory.getLog("");
- @Resource
- private CarParkService carParkService;
- /**
- * @Description: 定时任务调度主方法
- * @param
- * @return void
- * @throws
- * @author whl
- * @date 2014-10-22
- */
- public void work(){
- task1();
- }
- //扫描xxx
- public void task1(){
- log.warn("QuartzJob1.task1() 每隔5分钟执行一次");
- }
- }
spring Quartz多个定时任务的配置的更多相关文章
- 基于spring+quartz的分布式定时任务框架
问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比较快,因此,开发人员花费了更多的时间去更=跟上迭代的步伐,而缺乏了对整个系统的把控 没有集群之前 ...
- Spring—Quartz定时调度CronTrigger时间配置格式的实例
格式说明:[秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小 ...
- Spring—Quartz定时调度CronTrigger时间配置格式说明与实例
1 .CronTrigger时间格式配置说明 CronTrigger配置格式: 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 ...
- Spring+quartz 实现定时任务job集群配置
为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...
- Spring+quartz 实现定时任务job集群配置【原】
为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...
- spring的Scheduled(定时任务)和多线程
一.前言 在我们日常的开发中,经常用到数据同步的更新,这时我们采用的是spring的定时任务和java的多线程进行数据的更新,进行时实的服务调用. 二.实现思路 1.创建线程类 ...
- spring boot 基础篇 -- 定时任务
在日常项目中,常常会碰到定时监控项目中某个业务的变化,下面是spring boot 集成的定时任务具体配置: @Component public class IndexWarningScheduled ...
- Spring Boot整合Quartz实现定时任务表配置
最近有个小项目要做,spring mvc下的task设置一直不太灵活,因此在Spring Boot上想做到灵活的管理定时任务.需求就是,当项目启动的时候,如果有定时任务则加载进来,生成schedule ...
- Spring+Quartz 实现定时任务的配置方法
Spring+Quartz 实现定时任务的配置方法 整体介绍 一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是 ...
随机推荐
- 了解 JS 原型
原型概念 当创建了一个函数时,就会根据一组特定的规则为该函数创建一个 prototype 属性,这个属性指向函数的原型对象.在默认情况下,所有原型对象都会自动获得一个constructor 的属性 这 ...
- 用上CommonMark.NET,.NET平台终于有了好用的markdown引擎
缺少好用的markdown引擎之前一直是.NET平台上的一个痛点.因为这个痛点,我们被迫痛苦地使用了pandoc--不是pandoc做的不好,而是pandoc是由Haskell开发的,只能在Windo ...
- 利用百度API Store接口进行火车票查询
火车票查询 项目源码下载链接: Github:https://github.com/VincentWYJ/TrainTicketQuery 博客文件:http://files.cnblogs.com/ ...
- sql where and or优先级 待验证
where 后面如果有and,or的条件,则or自动会把左右的查询条件分开,即先执行and,再执行or.原因就是:and的执行优先级最高! 关系型运算符优先级高到低为:not and or 问题的解决 ...
- 报错: Unable to start activity ComponentInfo:You need to use a Theme.AppCompat theme
转自 http://www.2cto.com/kf/201605/506596.html
- 图解Javascript原型链
本文尝试阐述Js中原型(prototype).原型链(prototype chain)等概念及其作用机制.上一篇文章(图解Javascript上下文与作用域)介绍了Js中变量作用域的相关概念,实际上关 ...
- 数据结构图文解析之:直接插入排序及其优化(二分插入排序)解析及C++实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 7676 Solved: 3509[Subm ...
- 个人学习记录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, ...
- java 部分注解说明(待补充)
内容 所代表的意思 @RequestMapping(params = "save") @ResponseBody 将内容或对象作为http响应正文返回,并调用适合HttpMessa ...