[发明专利]应用的并行启动处理方法、装置及电子设备有效
| 申请号: | 202210544712.4 | 申请日: | 2022-05-19 |
| 公开(公告)号: | CN114647464B | 公开(公告)日: | 2022-09-06 |
| 发明(设计)人: | 吴倩;陈广乐;胡玉柱;郑福来;毛银杰;许欣芃;马进朝;胡波 | 申请(专利权)人: | 恒生电子股份有限公司 |
| 主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/48;G06F9/54 |
| 代理公司: | 杭州华鼎知识产权代理事务所(普通合伙) 33217 | 代理人: | 魏亮 |
| 地址: | 310053 浙江省杭州市*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 应用 并行 启动 处理 方法 装置 电子设备 | ||
本申请提出了应用的并行启动处理方法、装置及电子设备,包括接收待处理的SpringBoot框架下的Java应用,提取Java应用中的Bean组件;判断Bean组件实例化过程中是否存在顺序依赖关系的执行链;在保留原顺序依赖关系基础上,将不存在顺序依赖关系的执行链调整为并行执行逻辑,完成Bean组件实例化过程的启动顺序调整。通过将Java应用中不同Bean组件实例化过程进行异步并发执行处理,相对于原有的顺序执行方式能够大幅缩短应用执行耗时;同时在并发执行过程中针对执行结果进行及时校验,在发现异常时能够阻止应用执行,从而保证应用执行的稳定性。
技术领域
本申请属于软件微服务领域,尤其涉及应用的并行启动处理方法、装置及电子设备。
背景技术
SpringBoot作为主流的Java微服务框架,已经越来越多地被应用到实际的项目中。为了确保整个启动生命周期的可控性,SpringBoot使用了同步单线程的方式初始化各类RPC组件和中间件客户端SDK,这样才能确保整个Java应用启动完成时可以对外提供服务。
在现有同步启动机制下,一个核心的SpringBoot的Java微服务应用由于实际应用场景需要,除了需要初始化RPC组件和相关中间件SDK外,还需要有些额外的处理,如此一来就大大增加了应用的启动时间,启动时间可能长达数十分钟。
发明内容
本申请实施例提出了应用的并行启动处理方法、装置,将现有的应用执行逻辑修改为并行处理,能够缩短应用执行时长。
具体的,根据本公开实施例的第一方面,本申请实施例提出应用的并行启动处理方法,所述方法包括:
接收待处理的SpringBoot框架下的Java应用,提取Java应用中的Bean组件;
判断Bean组件实例化过程中是否存在顺序依赖关系的执行链;
在保留原顺序依赖关系基础上,将不存在顺序依赖关系的执行链调整为并行执行逻辑,完成Bean组件实例化过程的启动顺序调整。
可选的,所述判断Bean组件实例化过程中是否存在顺序依赖关系的执行链,包括:
提取Bean组件中的声明代码字段;
根据声明代码字段中是否存在已声明的执行链名称,判断是否存在顺序依赖关系的执行链。
可选的,所述方法还包括:
获取处于并行执行逻辑的执行链的执行结果;
对执行结果进行校验,校验通过后输出当前执行链的执行结果;
当校验未通过时,则停止执行当前Java应用。
可选的,所述方法还包括:
如果执行链中包含多个原子任务操作,则判断原子任务操作之间是否存在分组设置。
可选的,所述方法包括:
如果不存在分组设置,则将当前执行链中的原子任务操作全部调整为顺序执行逻辑处理;
如果存在分组设置,则同个分组内部原子任务操作调整为顺序执行逻辑处理,不同分组调整为并发执行逻辑处理。
根据本公开实施例的第二方面,本申请实施例还提出应用的并行启动处理装置,所述装置包括:
实例提取单元,用于接收待处理的SpringBoot框架下的Java应用,提取Java应用中的Bean组件;
关系判定单元,用于判断Bean组件实例化过程中是否存在顺序依赖关系的执行链;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恒生电子股份有限公司,未经恒生电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210544712.4/2.html,转载请声明来源钻瓜专利网。





