Quartz

介绍

  • 在Java中实现任务调度
  • 基于时间触发

概念

  1. Job(作业)
    • 表示需要执行的任务逻辑,是一个实现org.quartz.Job接口的类,需重写execute()方法
    • JobDetail: 对Job的封装,包含Job的名称,组名,描述,持久化配置等元数据,由JobBuiler构建
  2. Trigger(触发器)
    • 定义Job的执行时间规则
    • 核心触发器分为固定触发器(SimpleTrigger)与CRON表达式触发器(CronTrigger)
    • Trigger由TriggerBuilder构建,包含优先级,触发时间,重复次数等属性
  3. Scheduler(调度器)
    • 核心组件,负责管理Job和Trigger的生命周期,并根据触发规则执行作业
    • 常用实现类: StdScheuler,通过SchedulerFactory获取实例
  4. JobExecutionContext(作业执行上下文)
    • 传递给Job.execute()方法的向上问对象,包含当前调度器,触发器,作业等信息,用于获取任务运行时数据
  5. JobDataMap
    • 键值对集合,用于在Job与Trigger之间传递数据
  6. Listener(监听器)
    • 用来监听作业,触发器,调度器的生命周期
    • JobListener: 作业监听器
    • TriggerLIstener: 触发器监听器
    • SchedulerListener: 调度器监听器

架构

  1. 调度核心: 管理调度逻辑,协调触发器与作业的执行
  2. 作业存储: 负责持久化调度器,触发器与作业的状态
    • RAMJobStore: 内存存储,性能高但不持久化
    • JDBCJobStore: 数据库存储,支持集群和持久化,需要配置数据库连接
  3. 线程池: 管理执行作业的线程,默认使用SimpleThreadPool
  4. 触发器管理: 解析触发器规则,计算出发时间

依赖


<dependency>

<groupId>org.quartz-scheduler</groupId>

<artifactId>quartz</artifactId>
    <version2.3.2></version>
</depdendency>

使用

  1. 引入依赖
  2. 定义Job类,实现Job接口,重写execute()方法
  3. 根据规则,构建JobDetail与Trigger
  4. 创建调度器示例,注册Job与Trigger,启动调度器
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇