[发明专利]代码加载更新方法、装置及服务器有效
申请号: | 201710446714.9 | 申请日: | 2017-06-14 |
公开(公告)号: | CN109086059B | 公开(公告)日: | 2023-05-09 |
发明(设计)人: | 王俊豪 | 申请(专利权)人: | 腾讯科技(北京)有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;H04L67/02;H04L67/00 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 朱雅男 |
地址: | 100080 北京市海淀区海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 加载 更新 方法 装置 服务器 | ||
本发明实施例公开了一种代码加载更新方法、装置及服务器,属于软件开发技术领域。该方法包括:获取导入的目标代码模块的模块名称,目标代码模块是用于热加载或热更新的代码模块,目标代码模块采用import机制导入;根据模块名称,通过查找器从至少一个模块载入器中查找到目标模块载入器,各个模块载入器对应各自的HTTP站点,HTTP站点用于存储热加载或热更新的代码模块;通过目标模块载入器从对应的目标HTTP站点处下载目标代码模块;通过目标模块载入器将目标代码模块热加载或热更新得到程序中。本发明实施例中只需要利用import机制导入目标代码模块即可,无需设置线程锁,简化了远端加载的操作,提高了远端加载的效率。
技术领域
本发明实施例涉及软件开发技术领域,特别涉及一种代码加载更新方法、装置及服务器。
背景技术
随着Python语言的不断更新和完善,越来越多的大型项目开始采用Python语言进行开发。
为了降低项目维护成本和负担,大型Python项目中通常包含大量热加载或热更新的代码模块。其中,热加载是指程序运行过程中,实时加载并运行新增代码模块的过程;热更新是指程序运行过程中,实时对指定代码模块进行更新的过程。代码模块的热加载或热更新不会影响程序的正常运行,从而避免每次更新时都需要重新部署整体程序代码,降低了项目的维护成本。相关技术中,通常使用Python语言内置的eval函数实现代码模块的热更新和热加载。
然而,当需要热加载或热更新的代码模块存储在远端HTTP(HyperText TransferProtocol,超文本传输协议)站点,并使用eval函数从远端HTTP站点下载代码模块时,需要显示调用相关函数,并设置相应的线程锁,导致进行远端加载的过程复杂,效率较低。
发明内容
为了解决相关技术中存在的问题,本发明实施例提供了一种代码加载更新方法、装置及服务器。所述技术方案如下:
根据本发明实施例的第一方面,提供了一种代码加载更新方法,该方法包括:
获取导入的目标代码模块的模块名称,目标代码模块是用于热加载或热更新的代码模块,目标代码模块采用import机制导入;
根据模块名称,通过查找器从至少一个模块载入器中查找到目标模块载入器,各个模块载入器对应各自的HTTP站点,HTTP站点用于存储热加载或热更新的代码模块;
通过目标模块载入器从对应的目标HTTP站点处下载目标代码模块;
通过目标模块载入器将目标代码模块热加载或热更新得到程序中。
根据本发明实施例的第二方面,提供了一种代码加载更新装置,该装置包括:
第一获取单元,用于获取导入的目标代码模块的模块名称,目标代码模块是用于热加载或热更新的代码模块,目标代码模块采用import机制导入;
查找单元,用于根据模块名称,通过查找器从至少一个模块载入器中查找到目标模块载入器,各个模块载入器对应各自的HTTP站点,HTTP站点用于存储热加载或热更新的代码模块;
下载单元,用于通过目标模块载入器从对应的目标HTTP站点处下载目标代码模块;
加载更新单元,用于通过目标模块载入器将目标代码模块热加载或热更新得到程序中。
根据本发明实施例的第三方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如第一方面所述的代码加载更新方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(北京)有限公司,未经腾讯科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710446714.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:车载程序升级系统
- 下一篇:系统、电子设备及在线升级固件的方法