quartz学习四--存储、集群

本文介绍了Quartz的存储机制,包括内存存储和持久化存储,重点讲解了持久化存储中的JobStore接口、JobStoreSupport类及其实现,如JobStoreTX和JobStoreCMT。此外,还探讨了Quartz集群的配置和实现,强调了集群中必须使用持久化JobStore的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Quartz的存储和持久化
    1、存储机制
       Quartz 用 JobStores 对 Job、Trigger、calendar 和 Schduler 数据提供一种存储机制。

       Scheduler 应用已配置的JobStore 来存储和获取到部署信息,并决定正被触发执行的 Job 的职责。

       所有的关于哪个 Job 要执行和以什么时间表来执行他们的信息都来存储在 JobStore。

    2、存储类型
       内存(非持久化) 存储

       持久化存储

    3、JobStore 接口
       (1)、作用
            所有的Job存储机制,不管是在哪里或是如何存储他们的信息的,都必须实现这个接口。

       (2)、JobStore 接口的 API 分类
            Job 相关的 API

            Trigger 相关的 API

            Calendar 相关的 API

            Scheduler 相关的 API

    4、内存(非持久化) JobStore
       (1)、org.quartz.simple.RAMJobStore
            a、作用
           使用内存来存储 Scheduler 信息 , 是 Quartz 的默认的解决方案。

            b、优势
           RAMJobStore是配置最简单的 JobStore:默认已经配置好了。见 quartz.jar:org.quartz.quartz.properties

           RAMJobStore的速度非常快。所有的 quartz存储操作都在计算机内存中

    5、持久化 JobStore
       (1)、组成
            持久化 JobStore = JDBC + 关系型数据库

       (2)、org.quartz.impl.jdbcjobstore.JobStoreSupport 类
            Quartz 所有的持久化的 JobStore 都扩展自 JobStoreSupport 类。

       (3)、JobStoreSupport实现类
            a、每一个设计为针对特定的数据库环境和配置

            b、org.quartz.impl.jdbcjobstore.JobStoreTX
           类设计为用于独立环境中。这里的 "独立",我们是指这样一个环境,在其中不存在与应用容器的事务集成。

            c、org.quartz.impl.jdbcjobstore.JobStoreCMT
           类设计为与程序容器事务集成,容器管理的事务(Container Managed Transactions (CMT))

            d、JobStore 配置
           #properties配置
           org.quartz.jobStore.class = org.quartz.ompl.jdbcjobstore.JobStoreTX

       (4)、数据库结构 -- 表名描述
            QRTZ_CALENDARS                    --->        以 Blob 类型存储 Quartz 的 Calendar 信息
            QRTZ_CRON_TRIGGERS                    --->        存储 Cron Trigger,包括 Cron 表达式和时区信息
            QRTZ_FIRED_TRIGGERS                    --->        存储与已触发的 Trigger 相关的状态信息,以及相联 Job 的执行信息
            QRTZ_PAUSED_TRIGGER_GRPS                --->        存储已暂停的 Trigger 组的信息
            QRTZ_SCHEDULER_STATE                --->        存储少量的有关 Scheduler 的状态信息,和别的 Scheduler 实例(假如是用于一个集群中)
            QRTZ_LOCKS                        --->        存储程序的悲观锁的信息(假如使用了悲观锁)
            QRTZ_JOB_DETAILS                    --->        存储每一个已配置的 Job 的详细信息
            QRTZ_JOB_LISTENERS                    --->        存储有关已配置的 JobListener 的信息
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值