[发明专利]一种基于Quartz的Redis实现方法与系统在审
申请号: | 202010096505.8 | 申请日: | 2020-02-17 |
公开(公告)号: | CN111324436A | 公开(公告)日: | 2020-06-23 |
发明(设计)人: | 古欣;王伟;李雷红;陈淑伟;赵震 | 申请(专利权)人: | 山东有人信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F16/21;G06F16/28 |
代理公司: | 北京久维律师事务所 11582 | 代理人: | 邢江峰 |
地址: | 250000 山东省济南市高新区新泺大*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 quartz redis 实现 方法 系统 | ||
本发明提供了一种基于Quartz的Redis实现方法与系统,本发明通过在Quartz线程模型中JobStore位置处进行升级处理,将所有进行关系型数据的操作全部交由Redis实现,基于Redis创建Quartz的各个调度元素所需数据结构,并根据硬件性能分配具体线程策略,由于Redis的操作基于内存,所以能大大提高作业调度时间,而Redis的持久化处理可保证数据的安全性。本发明相比原来关系型数据库的性能提高约9倍,且在高性能的同时数据安全性也得到了提高,并保证了海量调度任务情况下的快速、稳定、低延迟的执行。
技术领域
本发明涉及数据库存储技术应用领域,特别是一种基于Quartz的Redis实现方法与系统。
背景技术
Quartz是OpenSymphony开源组织在Job scheduling领域的又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,任务进度管理器就是一个在预先确定的时间到达时,负载执行或者通知其他软件组件的系统。Quartz用一个小Java库发布文件,这个库文件包含了所有的Quartz核心功能,这些功能的主要接口是Scheduler接口,其提供了简单的操作,例如将任务纳入日程或者从日程中取消,开始/停止/暂停日程进度。
Quartz支持内存中的调度信息和关系数据库中存储调度信息,这两种模式都有一定局限性,内存的调度信息当进程终止时,所有的调度信息都会丢失,而基于关系型数据的运行效率太慢。
发明内容
本发明的目的是提供一种基于Quartz的Redis实现方法与系统,旨在解决现有技术中Quartz内存调度和关系型数据调度各自存在局限性的问题,实现结合两种调度模式的优点,提高运行效率且保证数据的稳定。
为达到上述技术目的,本发明提供了一种基于Quartz的Redis实现方法,所述方法包括以下操作:
实现Quartz线程模型的JobStore接口,将任务调度器、触发器、Job以及JobDetail的CRUD操作交由Redis去实现;
基于Redis创建Quartz的各个调度元素所需的数据结构;
设置单线程调度,避免线程锁,在Job execute出口另起任务线程池并分配线程策略。
优选地,所述数据结构包括:
存放Job、Data、Trigger相关的Hash结构、存放Group相关的Set结构和等待触发任务的ZSET结构。
优选地,所述调度元素包括任务调度器、触发器、Job以及JobDetail。
本发明还提供了一种基于Quartz的Redis实现系统,所述系统包括:
JobStore接口实现模块,用于实现Quartz线程模型的JobStore接口,将任务调度器、触发器、Job以及JobDetail的CRUD操作交由Redis去实现;
数据结构创建模块,用于基于Redis创建Quartz的各个调度元素所需的数据结构;
线程调度设置模块,用于设置单线程调度,避免线程锁,在Job execute出口另起任务线程池并分配线程策略。
优选地,所述数据结构包括:
存放Job、Data、Trigger相关的Hash结构、存放Group相关的Set结构和等待触发任务的ZSET结构。
优选地,所述调度元素包括任务调度器、触发器、Job以及JobDetail。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东有人信息技术有限公司,未经山东有人信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010096505.8/2.html,转载请声明来源钻瓜专利网。