Quartz学习记录

什么是Quartz?

  Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。 Quartz用一个小Java库发布文件(.jar文件),这个库文件包含了所有Quartz核心功能。这些功能的主要接口(API)是Scheduler接口。它提供了简单的操作,例如:将任务纳入日程或者从日程中取消,开始/停止/暂停日程进度。 

Quartz可以用来做什么?

Quartz是一个任务调度框架。比如你遇到这样的问题

  • 想每月25号,信用卡自动还款
  • 想每年4月1日自己给当年暗恋女神发一封匿名贺卡
  • 想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘

这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事,你给它一个触发条件的定义,它负责到了时间点,触发相应的Job起来干活。

Quartz特点

  •  强大的调度功能(作为Spring默认的调度框架,quartz很容易和spring 集成,实现灵活可配置的调度功能,还提供调度运行环境持久化机制可以保持并恢复调度现场,即使因系统故障)
  • 灵活的应用方式
  • 分布式和集群能力

Quartz的设计模式

  • builder模式
  • 工厂模式
  • 组件模式
  • 链式写法

三个核心概念

  • 调度器
  • 任务
  • 触发器

Quartz体系结构

Quartz重要组成

  • Job(接口)
  • JobDetail
  • JobBuilder
  • JobStore(接口)
  • Trigger
  • TriggerBuilder
  • ThreadPool
  • Scheduler
  • Calendar一个Trigger可以和多个Calendar关联,以排除或包含某些时间点
  • 监听器(JobListener、TriggerListener 、SchedulerListener)

猜你喜欢

转载自www.cnblogs.com/zhou-test/p/9712445.html