zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    遍历数组的常用方法
    ios 提审被拒4.3,更换账号提审处理
    js 判断手机有没有网络
    js网页拉起支付宝支付
    uni-app常用 HTML5+APP 设置
    uni-app 无痛刷新 token 方法
    uni-app通过判断接口403跳转登录页面的问题
    APICloud项目纪要
    Vue递归组件实现层层嵌套显示数据
    Git恢复删除的分支
  • 原文地址:https://www.cnblogs.com/zhou-test/p/9712445.html
Copyright © 2011-2022 走看看