【视频&交流平台】
http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
https://gitee.com/happyangellxq520/spring-boot
http://412887952-qq-com.iteye.com/blog/2321532
在上一篇文章中我们谈到了Quartz,在这接下的博客中,我们将会对Quartz有所了解和学习。在这篇文章我们,我们主要来简单的认识下Quartz,已经会的童鞋可以跳过此篇博客,当然本篇文章也只是抛砖引玉下,对于Quartz介绍的文章太多了,大家可以根据需要进行深入的学习。看下本篇文章的大纲:
(2)Quartz的特点;
(3)Quartz专用词汇说明;
(4)Quartz任务调度基本实现原理;
接下来看下具体的内容:
(1)什么是Quartz?
Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。简单地创建一个org.quarz.Job接口的Java类。
(2)Quartz的特点;
作为一个优秀的开源调度框架,Quartz 具有以下特点:
① 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求;
② 灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式;
③ 分布式和集群能力,Terracotta 收购后在原来功能基础上作了进一步提升。
④ Quartz 很容易与 Spring 集成实现灵活可配置的调度功能。
(3)Quartz专用词汇说明;
下面是本文中用到的一些专用词汇,在此声明:
scheduler:
任务调度器
trigger:
触发器,用于定义任务调度时间规则
job:
任务,即被调度的任务
misfire:
错过的,指本来应该被执行但实际没有被执行的任务调度
(4)Quartz任务调度基本实现原理;
Quartz 任务调度的核心元素是 scheduler, trigger 和 job,其中 trigger 和 job 是任务调度的元数据, scheduler 是实际执行调度的控制器。
在 Quartz 中,trigger 是用于定义调度时间的元素,即按照什么时间规则去执行任务。Quartz 中主要提供了四种类型的 trigger:SimpleTrigger,CronTirgger,DateIntervalTrigger,和 NthIncludedDayTrigger。这四种 trigger 可以满足企业应用中的绝大部分需求。
在 Quartz 中,job 用于表示被调度的任务。主要有两种类型的 job:无状态的(stateless)和有状态的(stateful)。对于同一个 trigger 来说,有状态的 job 不能被并行执行,只有上一次触发的任务被执行完之后,才能触发下一次执行。Job 主要有两种属性:volatility 和 durability,其中 volatility 表示任务是否被持久化到数据库存储,而 durability 表示在没有 trigger 关联的时候任务是否被保留。两者都是在值为 true 的时候任务被持久化或保留。一个 job 可以被多个 trigger 关联,但是一个 trigger 只能关联一个 job。
在 Quartz 中, scheduler 由 scheduler 工厂创建:DirectSchedulerFactory 或者 StdSchedulerFactory。 第二种工厂 StdSchedulerFactory 使用较多,因为 DirectSchedulerFactory 使用起来不够方便,需要作许多详细的手工编码设置。 Scheduler 主要有三种:RemoteMBeanScheduler, RemoteScheduler 和 StdScheduler。本文以最常用的 StdScheduler 为例讲解。这也是笔者在项目中所使用的 scheduler 类。
视频&交流平台:
http://study.163.com/course/introduction.htm?courseId=1004329008
http://412887952-qq-com.iteye.com/blog/2321532
相关推荐
spring-boot-quartz-demo, 使用Quartz框架的样例 Spring Boot 应用程序 spring-boot-quartz-demo使用Quartz框架的样例 Spring Boot 应用程序基于 https://gist.github.com/jelies/5085593 附加功能( 断点,失火处理...
spring-boot-quartz定时任务
关于spring中quartz的配置
Spring Boot Documentation 1. About the Documentation 2. Getting Help 3. First Steps 4. Working with Spring Boot 5. Learning about Spring Boot Features 6. Moving to Production 7. Advanced Topics II. ...
Spring Boot Quartz Scheduler示例:构建电子邮件调度应用 完整的教程: : 要求 Java-1.8.x Maven-3.xx MySQL-5.xx 设定步骤 1.克隆应用程序 git clone ...
schedule-job, 基于Spring Boot Quartz 的分布式任务调度系统
基于spring-boot+quartz的CRUD任务管理系统源码+项目说明.zip基于spring-boot+quartz的CRUD任务管理系统源码+项目说明.zip基于spring-boot+quartz的CRUD任务管理系统源码+项目说明.zip基于spring-boot+quartz的CRUD...
本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...
动态管理了定时任务的添加、修改、删除等操作,可扩展性强
基于spring-boot 2.x + quartz 的CRUD任务管理系统,适用于中小项目
spring-cloud-alibaba+dubbo+nacos+quartz以yml配置方式实现
一个基于springboot的quartz集群dome。 向http://localhost:9090/job/addjob注入3个参数 类名:(及时定时任务的类如:com.ybjdw.site.job.NewJob) 组名:随意 定时启动方法:如“0/3 * * * * ?”(每3秒启动一次...
spring boot集成quartz定时器,job支持spring的依赖注入
本项目是基于Spring Boot和Quartz开发的CRUD任务管理系统设计源码,主要使用Java进行开发。项目共包含1637个文件,其中SVG矢量图文件760个,PNG图片文件640个,CSS样式文件56个,JavaScript源代码文件25个,SQL文件...
2.目前新的项目基本都是spring boot,如何通过约束、配置方式快速构建elastic job是一个必 要解决问题 ;所以博主自己开发了一个elastic job 的spring boot starter自动装载模块;目前 该starter已经在公司多个...
Spring Boot 专栏 基于 Spring Boot 2.X 版本的深度入门教程。 市面上的 Spring Boot 基础入门文章很多,但是深度入门文章却很少。对于很多开发者来说,入门即是其对某个技术栈的最终理解,一方面是开发者“比较懒...
spring-boot-2.1.3.RELEASE.jar -autoconfigure- -devtools- -maven-plugin- -starter- -starter-jdbc- -starter-json- -starter-logging- -starter-test- -starter-tomcat- -starter-web- -test- -test-...
基于spring boot任务管理系统源代码 启动说明 项目使用的数据库为MySql,选择resources/sql中的tables_mysql_innodb.sql文件初始化数据库信息。 在resources/application.properties 以及quartz.properties文件中...
本案例实现的功能是SpringBoot整合Quartz定时任务框架,实现在项目运行过程中自动执行工作任务,设定时间是每20秒执行一次。
Spring Boot+Apache Shiro+Spring MVC+MyBatis+Quartz+Druid DEMO