[发明专利]一种免重启运维升级方法、系统、装置和介质有效
申请号: | 202011110064.9 | 申请日: | 2020-10-16 |
公开(公告)号: | CN112199110B | 公开(公告)日: | 2022-05-31 |
发明(设计)人: | 贾天军 | 申请(专利权)人: | 上海睿成软件有限公司 |
主分类号: | G06F8/656 | 分类号: | G06F8/656;G06F9/445;G06F8/54;G06F8/41 |
代理公司: | 苏州携智汇佳专利代理事务所(普通合伙) 32278 | 代理人: | 温明霞 |
地址: | 202150 上海市崇明区城桥镇鳌*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 启运 升级 方法 系统 装置 介质 | ||
本发明公开了一种免重启运维升级系统、方法、装置和介质,包括:请求接收模块,用于接收访问请求;文件获取模块,用于查找并获取访问请求对应的业务逻辑文件;运行缓存模块,用于存储访问请求对应的第一可执行代码;更新判断模块,用于判断是否需要使用访问请求对应的业务逻辑文件更新第一可执行代码;编译模块,用于当需要使用访问请求对应的业务逻辑文件更新第一可执行代码,编译业务逻辑文件,生成第二可执行代码并令第一可执行代码更新为第二可执行代码。本发明的效果:可以再不停止服务的前提下,对web项目更新升级。
技术领域
本发明涉及网站运维领域,特别涉及一种免重启运维升级方法、系统、装置和介质。
背景技术
在传统的JAVA开发过程中,一般采用静态编译的方式进行,具体而言,首先使用JAVA编译器对java源代码进行编译,从而生成字节码,具体到文件,也就是对应的Class文件,然后JAVA虚拟机根据CLASS文件的内容,生成对应的二进制执行码,从而进行执行。
但是在Web开发的过程中,由于在运行过程中必须在启动的同时将Class文件,也就是字节码载入内存中,导致在升级的时候,必须让服务器停止服务,才能实现代码升级,在重新启动之后才能将新的代码注入到内存中进行使用。
故市场亟需一种可以基于JAVAWEB的,实现免重启运维升级的技术方案。
发明内容
为解决在Web开发的过程中,由于在运行过程中必须在启动的同时将Class文件,也就是字节码载入内存中,导致在升级的时候,必须让服务器停止服务,才能实现代码升级,在重新启动之后才能将新的代码注入到内存中进行使用,本发明提供一种免重启运维升级方法、系统、装置和介质,具体的技术方案如下:
一方面,本发明提供一种免重启运维升级系统,包括:
请求接收模块,用于接收访问请求;
文件获取模块,用于查找并获取所述访问请求对应的业务逻辑文件;
运行缓存模块,用于存储所述访问请求对应的第一可执行代码;
更新判断模块,用于判断是否需要使用所述访问请求对应的业务逻辑文件更新所述第一可执行代码;
编译模块,用于当需要使用所述访问请求对应的业务逻辑文件更新所述第一可执行代码时,编译所述业务逻辑文件,生成所述第二可执行代码并令所述第一可执行代码更新为所述第二可执行代码。
在本实施例中,通过在被请求调用业务逻辑文件的时候,根据需求动态的编译对应的业务逻辑文件,然后将生成的可执行代码载入到内存当中,克服了传统的JAVAWEB升级部署过程中需要重启动后才可以生效的问题,也就是说在实际的运行过程中,可以再不停止服务的前提下,对源代码进行debug和更新升级,如增加业务逻辑等,同时,用户并不会因为升级而导致服务停止或者是数据丢失。
优选地,所述编译模块具体包括:
源代码读取子模块,用于读取所述业务逻辑文件;
JAVA动态编译子模块,用于动态编译所述业务逻辑文件的源代码,生成第二可执行代码。
在本优选的技术方案中,相对于静态编译,动态编译能够更快的得到可执行代码进而部署到内存中进行运行,从而提高了系统的运行效率。
优选地,还包括静态编译模块,所述静态编译模块包括:
静态代码读取子模块,用于读取所述业务逻辑文件;
字节码生成子模块,用于根据所述业务逻辑文件生成JAVA字节码;
字节码解释子模块,用于根据所述JAVA字节码生成所述第一可执行代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海睿成软件有限公司,未经上海睿成软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011110064.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带有防溢安全结构的导热界面装置
- 下一篇:家用雨伞放置装置