[發明專利]一種基于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.szxzyx.cn/pat/books/202010096505.8/2.html,轉載請聲明來源鉆瓜專利網。





