[发明专利]一种基于JVM的非阻塞分布式计划任务调度方法在审

专利信息
申请号: 202211139267.X 申请日: 2022-06-14
公开(公告)号: CN116089027A 公开(公告)日: 2023-05-09
发明(设计)人: 孙恒涛;方汉林;傅和平 申请(专利权)人: 浙江保融科技股份有限公司
主分类号: G06F9/48 分类号: G06F9/48;G06F9/455;G06F9/50;G06F9/52
代理公司: 杭州华鼎知识产权代理事务所(普通合伙) 33217 代理人: 魏亮
地址: 311100 浙江省杭州市余*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 jvm 阻塞 分布式 计划 任务 调度 方法
【说明书】:

本发明提供一种基于jvm的非阻塞分布式计划任务调度方法,在完全实现原有功能的基础上,解决线程数量占用过多、分布式下有节点空跑线程的问题。为实现上述目的,本发明创造采用如下技术方案:一种基于jvm的非阻塞分布式计划任务调度方法,应用于配置有kotlin语言库及coroutines协程库的Jvm虚拟机中,包括:分布式计划任务框架,还包括分布式协调组件;分布式协调组件中设置有通用非阻塞增删改查接口作为分布式协调组件所在客户端的非阻塞异步回调接口;通过协程封装分布式协调组件的非阻塞异步回调接口,并设置非阻塞循环监听器实现连续监听;最终基于封装后的协程非阻塞api重新实现一个本地节点缓存。本发明通过非阻塞改造,性能方面得以显著的提升。

技术领域

本发明属于分布式任务调度技术领域,尤其是一种基于JVM的非阻塞分布式计划任务调度方法。

背景技术

计划任务是指有计划的定时运行或者周期性运行的程序,最常见的计划任务包括了基于Linux的“crontab”以及基于Windows的“计划任务程序”。但随着新建项目越来越大,系统越来越复杂,现有的计划任务就暴露出许多问题。首先是高可用HA需求,当运行计划任务的服务器一旦出现故障,所有的计划任务将停止工作。其次是性能问题,越来越多的大型计划任务程序出现,对CPU/IO密集操作,单个节点已经无法满足需求。因此就需要设计分布式计划任务,通过协调多台主机来执行大量的任务,解决高可用的问题。

这一问题在C语言环境下比较容易解决,例如专利号为CN201811615533.5的发明专利《数据同步的系统、方法、装置和计算机存储介质》中就公开了一种数据同步系统、方法、装置和计算机存储介质。所述系统包括数据监听模块、消息分发模块、数据同步模块、以及配置管理模块;数据监听模块,用于对数据源进行监听以获取数据源的数据变更记录;消息分发模块,用于创建与数据源对应的消息队列,将数据变更记录加入到消息队列中;配置管理模块,用于管理数据源的同步配置参数;数据同步模块,用于获取同步配置参数,按照同步配置参数创建消费协程;由消费协程监听消息队列,按照同步配置参数将数据变更记录更新到目标存储中。这样的技术方案实现于诸如Smalltalk、C++等编程语言中,但是无法实现于java环境下。

在java环境下,现有技术中通常采用XXL-JOB分布式任务调度系统来实现分布式计划任务。例如专利申请号为202111626396.7的发明专利申请《基于XXL-JOB分布式任务调度系统的路由策略》中就公开了及一种基于XXL-JOB分布式任务调度系统的路由策略,包括以下步骤:各执行器自身根据任务流控规则判断当前是否可参与新任务;可执行新任务的执行器与调度中心之间确认系统标识,调度中心选定其中一台执行器为任务调度机器;任务调度机器接收任务参数并执行;优势在于:基于XXL-JOB分布式任务调度平台第10种分片广播路由策略,通过广播模式广播任务,所有任务流控规则验证通过的执行器机器均会尝试拉取任务,根据业务逻辑最终仅有一台机器能完整的完成系统标记身份确认以及任务调度确认,降低了出现“抢占式”业务执行逻辑时的负载风险。由此可见,为了解决线程资源浪费的问题,现有技术把所有的任务放在任务调度中心,调度中心连接关系型数据库,所有的数据放数据库里面,靠数据库锁控制并发、保证调度的一致性。这种方案一定程度上缓解了线程资源消耗过大这个问题,任务调度中心使用数量有限的线程做所有任务的调度,主体逻辑放在一个无限循环里面,任务的触发分发给工作节点,工作节点只需要一个任务一个线程持续运行就好,不需要更多的监听线程。但中心化任务调度中心也带来了性能有限、可扩展性降低、弹性调度变弱的缺点,并且在工作节点也是需要执行线程长期驻留的,属于阻塞式代码。

线程是比较重的资源,阻塞式代码阻塞了线程,让线程停止运行,并在一个地方长时间等待,资源消耗多、性能浪费。但这就是目前java环境下大多数代码的编程方式。目前java下实现非阻塞只有回调式写法,如Project Reactor、Vert.x,非阻塞回调式写法代码要求高,实现非常困难,难以编码、调试、学习、排错、代码阅读,这也导致了目前java环境下略微复杂功能的非阻塞代码无法实现。

发明内容

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江保融科技股份有限公司,未经浙江保融科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202211139267.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top