[发明专利]golang程序热更新方法、装置以及计算机设备在审
| 申请号: | 202010068077.8 | 申请日: | 2020-01-21 |
| 公开(公告)号: | CN112416383A | 公开(公告)日: | 2021-02-26 |
| 发明(设计)人: | 任运宜 | 申请(专利权)人: | 上海哔哩哔哩科技有限公司 |
| 主分类号: | G06F8/65 | 分类号: | G06F8/65 |
| 代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 邓小玲;王勇 |
| 地址: | 200433 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | golang 程序 更新 方法 装置 以及 计算机 设备 | ||
本发明公开了一种golang程序热更新方法,该方法包括:接收golang程序更新请求,获取所述更新请求中目标功能对应的第一代码段;将所述第一代码段添加到规则引擎的内容存储单元;根据所述规则引擎的执行规则从所述内容存储单元中调用所述第一代码段替代所述目标功能对应的第二代码段;执行包括所述第一代码段的golang程序。本发明还提供一种golang程序热更新装置、计算机设备以及计算机可读存储介质。本发明在将新代码段添加到规则引擎后,根据规则引擎的执行规则实现由调用旧代码段转换为调用新代码段,从而实现golang程序的在线更新,提升了golang程序更新的灵活性和效率。
技术领域
本发明涉及golang程序热更新技术领域,尤其涉及一种golang程序热更新方法、装置、计算机设备及计算机可读存储介质。
背景技术
由于golang语言是一门静态类型的编程语言,golang语言的数据存储到存储单元之后,存储位置是确定且不可改变的,因此,golang语言编写的程序具有较强的稳定性。然而,对于需要扩展能力的应用程序而言,golang语言的这种存储后不可改变的特性,实现功能扩展的代价会很高。例如,当golang语言的应用程序进行版本升级时,需要将应用程序停止,然后将新代码写入并执行新代码,从而运行新版本应用程序。也就是说,现有的golang语言的应用程序在进行更新时,一般都有停止服务后更新。因此,效率低下,且灵活性差。
发明内容
有鉴于此,本发明提出一种golang程序热更新方法、装置、计算机设备及计算机可读存储介质,能够解决golang程序在更新过程中停止服务的问题。
首先,为实现上述目的,本发明提供一种golang程序热更新方法,所述方法包括:
接收golang程序更新请求,获取所述更新请求中目标功能对应的第一代码段;将所述第一代码段添加到规则引擎的内容存储单元;根据所述规则引擎的执行规则从所述内容存储单元中调用所述第一代码段替代所述目标功能对应的第二代码段;执行包括所述第一代码段的golang程序。
在一个例子中,所述将所述第一代码段添加到规则引擎的内容存储单元包括:通过AST技术对所述第一代码段进行解析,得到对应的可执行代码段;将所述可执行代码段添加到所述内容存储单元。
在一个例子中,所述获取所述更新请求中目标功能对应的第一代码段包括:将所述golang程序更新请求对应的代码数据与所述golang程序上一版本的代码数据进行文本比对,找出差异代码;根据代码的格式确定出所述差异代码段中包括的所述第一代码段。
在一个例子中,所述执行规则包括:获取所述内容存储单元中所述golang程序中对应一个功能的所有版本的代码段;查找所述所有版本的代码段中的每个版本的代码段的编辑时间;选择出与当前时间的差值最小的编辑时间对应的代码段进行调用。
在一个例子中,所述规则引擎还包括执行优先级,所述golang程序热更新方法还包括:获取所述内容存储单元中所述golang程序对应的所有代码段的类型标识;根据所述类型标识和所述执行优先级从所述内容存储单元先后调用所述golang程序对应的代码段。
在一个例子中,所述类型标识用于标识出所述golang程序中的不同的子功能的代码段;相同子功能的不同版本的代码段的类型标识都相同。
在一个例子中,所述规则引擎通过语法树的方式实现。
此外,为实现上述目的,本发明还提供一种golang程序热更新装置,所述装置包括:
获取模块,用于接收golang程序更新请求,获取所述更新请求中目标功能对应的第一代码段;添加模块,用于将所述第一代码段添加到规则引擎的内容存储单元;调用模块,用于根据所述规则引擎的执行规则从所述内容存储单元中调用所述第一代码段替代所述目标功能对应的第二代码段;执行模块,用于执行包括所述第一代码段的golang程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海哔哩哔哩科技有限公司,未经上海哔哩哔哩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010068077.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:内容推荐方法、装置以及计算机设备
- 下一篇:半导体装置





