001-spring结合quartz使用
一、添加pom
二、定义业务类
public class TestJobTask{ /** *业务逻辑处理 */ public void service(){ /**业务逻辑*/ .. } }
二、配置spring的xml
<!-- 线程执行器配置,用于任务注册 --><bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"><property name="corePoolSize" value="10"/><property name="maxPoolSize" value="100"/><property name="queueCapacity" value="500"/></bean><!-- 业务对象 --><bean id="testJobTask" class="com.mike.scheduling.TestJobTask"/><!-- 调度业务 --><bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject" ref="testJobTask"/><property name="targetMethod" value="service"/></bean><!-- 第一种触发时间,采用类似linux的cron,配置时间的表示发出丰富--><bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail" ref="jobDetail"/><!--Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次 --><property name="cronExpression" value="10 0/1 * * * ?"/></bean><!-- 第二种,采用比较简话的方式,申明延迟时间和间隔时间--><bean id="taskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"><!--延迟10秒启动,然后每隔1分钟执行一次 --><property name="jobDetail" ref="jobDetail"/><property name="startDelay" value="10000"/><property name="repeatInterval" value="60000"/></bean><!-- 设置调度 --><bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="cronTrigger"/></list></property><property name="taskExecutor" ref="executor"/></bean>
启动容器即可,已经将spring和quartz结合完毕
根据上面spring的配置,我们就比较清楚quartz的内部情况,下面我们主要详解配置涉及到的每个点
1.我们先从最后一个步骤看起, SchedulerFactoryBean ,scheduler的工厂实现,里面可以生产出对应的多个jobDetail和trigger,每个jobDetail对应trigger代表一个任务
Quartz的SchedulerFactory是标准的工厂类,不太适合在Spring环境下使用。此外,为了保证Scheduler能够感知 Spring容器的生命周期,完成自动启动和关闭的操作,必须让Scheduler和Spring容器的生命周期相关联。以便在Spring容器启动后, Scheduler自动开始工作,而在Spring容器关闭前,自动关闭Scheduler。为此,Spring提供 SchedulerFactoryBean,这个FactoryBean大致拥有以下的功能:
1)以更具Bean风格的方式为Scheduler提供配置信息;
2)让Scheduler和Spring容器的生命周期建立关联,相生相息;
3)通过属性配置部分或全部代替Quartz自身的配置文件。
2.jobDetail,表示一个可执行的业务调用
3.trigger:调度的时间计划,什么时候,每隔多少时间可执行等时间计划
4. ThreadPoolTaskExecutor,线程池,用来并行执行每个对应的job,提高效率,这也是上面提到不推荐使用jdk自身timer的一个很重要的原因
001-spring结合quartz使用相关推荐
- spring集成quartz框架
2019独角兽企业重金招聘Python工程师标准>>> 1.Spring对quartz支持 2.实例(按红色部分配置) 1)引入quartz包 <dependency>& ...
- Spring的quartz定时器重复执行二次的问题解决
Spring的quartz定时器重复执行二次的问题解决 参考文章: (1)Spring的quartz定时器重复执行二次的问题解决 (2)https://www.cnblogs.com/alamps/p ...
- 使用Spring整合Quartz轻松完成定时任务
一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...
- Spring与Quartz的整合实现定时任务调度
Spring与Quartz的整合实现定时任务调度 摘自: http://kevin19900306.iteye.com/blog/1397744 最近在研究Spring中的定时任务功能,最好的办法当然 ...
- Spring 整合 Quartz 分布式调度
转载自 Spring 整合 Quartz 分布式调度 本文旨在对 Spring+Quartz 分布式调度有一个直观的了解,通过实际的使用来解决问题. 前言 为了保证应用的高可用和高并发性,一般都会部署 ...
- 通过SPANN方式将Spring&Quartz与自定义注释集成
在上一篇文章中 ,我们演示了如何在Spring容器中创建和配置带批注的Quartz作业. 我们使用了一个类级别的注释将一些元数据添加到实现Quartz Job的bean中. 批注定义了作业的名称,组及 ...
- 使用SPANN方式将Spring&Quartz与自定义注释集成
在上一篇文章中 ,我们演示了如何在Spring容器中创建和配置带批注的Quartz作业. 我们使用了一个类级别的注释将一些元数据添加到实现Quartz Job的bean中. 批注定义了作业的名称,组及 ...
- Spring&Quartz集成自定义注释
我们知道Spring支持与Quartz框架集成. 但是到目前为止,Spring仅支持静态XML声明方法. 如果想了解如何将Spring与Quartz集成,可以参考Spring + Quartz + J ...
- java quartz spring_JavaLib-quartz | 基于Spring Boot Quartz开发的定时任务
基于Spring Boot Quartz开发的JavaLib-quartz,目的是帮你快速构建定时任务系统,你可以专心编写你的业务逻辑,而不必关注定时任务具体是如何实现的,他的性能如何,有没有异常以及 ...
- Spring整合Quartz实现定时任务
Quartz框架是一个极其成功的开源任务调度框架,目前很多公司在实现任务调度上都直接使用或在借鉴的基础上实现了自己的任务调度框架,Quartz使用Trigger,Job和JobDetail对象实现调度 ...
最新文章
- bootstap 表格自动换行 截取超长数据
- web api 二
- 自定义安装python,退格,方向键无法正常使用(转)
- 【数据结构与算法】之深入解析“K个逆序对数组”的求解思路与算法示例
- python os rename用法_Python os.rename() 方法
- 前端开发人员需知——浏览器详解
- 深入浅出计算机组成原理04:存储和IO系统
- c语言中状态机的作用,C语言中的状态机
- JME3中级手册--最佳实践1
- 基于opencv的摄像头脸部识别抓取及格式储存(python)
- 网易云课堂-吴恩达机器学习-学习归纳-1-初识机器学习
- Topaz Video Enhance AI(ai视频画质增强软件)官方正式版V2.2.0 | AI视频放大软件下载 | 视频画质怎么变清晰?
- 《哈佛大学幸福课》笔记
- 《STL源码剖析》--memery
- 2022高处安装、维护、拆除考试题库及模拟考试
- 《九日集训》(第一讲)函数
- CMS是Content Management System的缩写,意为内容管理系统。
- Hadoop分布式计算框架MapReduce
- 动力环境监控系统(动环监控功能特点)
- PFC 5.0 离散元中的 wall history,监测位移和力
热门文章
- git clone 出现错误
- STA 137 Topics covered this week
- python设计模式之猴子补丁模式
- script async和defer
- 2016年 1月15号 cocoapods的导入
- #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲...
- MySQL中如何定义外键[转]
- ie6 png不透明的解决方法
- AxWebBrowser打开本地文件
- 推荐一款强大的SQL Internal 查看工具InternalsViewer