一种在web应用中实现在线升级代码的方法技术

技术编号:13128821 阅读:45 留言:0更新日期:2016-04-06 14:21
本发明专利技术涉及应用升级更新,特别是一种在web应用中实现在线升级代码的方法。本发明专利技术包括如下步骤:1:创建统一的提供服务接口;2:创建web应用启动模块,加载所有jar包到内存;3:统一接口获取内存并实例化,处理后返回;4:放入更新jar包,启动更新模块;5:判断应用是否已在更新状态,是,执行步骤8;不在更新状态,执行步骤6;6:更新模块获取jar包内容,放到内存中,完成更新;7:调用统一接口继续提供服各;8:结束。本发明专利技术解决了应用在运行过程中需要升级代码时需要重启而导致服务暂时中断的问题;可以用于web应用在线升级。

【技术实现步骤摘要】

本专利技术涉及应用升级更新,特别是一种在web应用中实现在线升级代码的方法
技术介绍
Web应用通过发布接口来提供服务,在应用运行过程中,当发现服务存在bug,需要修复,或者提供了更多的服务,就需要更新应用的代码,以便提供更好的服务质量。但是传统的应用更新存在以下问题:一是应用更新时,需要停止服务,放入更新代码后再重新启动,如果应用本身是比较大型的服务,重启时间比较长,那么会导致用户在应用重启的这段时间里无法使用服务。二是如果通过负载均衡,部署两套服务,升级其中一套,另外一套继续服务,对于小型的服务来说又是很耗费资源的;为了使服务可以持续提供,不影响用户的使用,同时使用较少的资源,需要一种通实现在线升级代码的方法。
技术实现思路
本专利技术解决的技术问题在于提供一种在web应用中实现在线升级代码的方法,解决了使用较少资源完成应用的在线升级问题。本专利技术解决上述技术问题的技术方案是:包括如下步骤:所述的方法包括如下步骤:步骤1:创建统一的提供服务接口;步骤2:创建web应用启动模块,加载所有jar包到内存;步骤3:统一接口获取内存并实例化,处理后返回;步骤4:放入更新jar包,启动更新模块;步骤5:判断应用是否已在更新状态,是,执行步骤8;不在更新状态,执行步骤6;步骤6:更新模块获取jar包内容,放到内存中,完成更新;步骤7:调用统一接口继续提供服务;步骤8:结束。所述的统一的服务接口带有computeActionType参数,标识调用功能,并把所有入参以map形式保存;所述的统一接口根据入参computeActionType,获取全局map中对应的实现类,初始化实现类,并把请求入参map赋值到实现类中,执行实现类,把执行结果返回给用户。所述的启动模块,在web应用启动时执行,遍历应用特定路径下jar包,并加载jar包中所有baseTask类的实现类,同时加入到全局静态Map中。所述的判断应用是否更新中,更新模块带有全局变量,记录应用是否更新中,用户调用更新接口后,更新模块启动,标识应用升级中,更新模块执行完毕后标识应用不在升级状态,可以继续下次更新。扫描特定路径下所有jar包,并获取所有baseTask类的实现类,加入到临时map中,扫描完毕后,替换原有内存中的全局静态map。本专利技术通过把应用服务的实现类加载到内存中,使用时再实例化。应用更新时,扫描所有jar包,重新加载实现类的内存中进行替换,实现应用的在线升级。在生产环境中,只需要提供足够一套足够应用运行的环境即可,应用升级时,还能继续提供服务,能减少运营成本,同时也能提供稳定的服务。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术方法流程图。具体实施方式如图1所示,本专利技术主要包括以下步骤:创建统一的服务入口,处理用户的请求:获取服务实现类代码如下扫描jar包代码把实现类加载到内存代码本文档来自技高网...

【技术保护点】
一种在web应用中实现在线升级代码的方法,其特征在于:所述的方法包括如下步骤:步骤1:创建统一的提供服务接口;步骤2:创建web应用启动模块,加载所有jar包到内存;步骤3:统一接口获取内存并实例化,处理后返回;步骤4:放入更新jar包,启动更新模块;步骤5:判断应用是否已在更新状态,是,执行步骤8;不在更新状态,执行步骤6;步骤6:更新模块获取jar包内容,放到内存中,完成更新;步骤7:调用统一接口继续提供服务;步骤8:结束。

【技术特征摘要】
1.一种在web应用中实现在线升级代码的方法,其特征在于:所述的方法
包括如下步骤:
步骤1:创建统一的提供服务接口;
步骤2:创建web应用启动模块,加载所有jar包到内存;
步骤3:统一接口获取内存并实例化,处理后返回;
步骤4:放入更新jar包,启动更新模块;
步骤5:判断应用是否已在更新状态,是,执行步骤8;不在更新状态,执
行步骤6;
步骤6:更新模块获取jar包内容,放到内存中,完成更新;
步骤7:调用统一接口继续提供服务;
步骤8:结束。
2.根据权利要求1所述的在web应用中实现在线升级代码的方法,其特征
在于:所述的统一的服务接口带有computeActionType参数,标识调用功能,并
把所有入参以map形式保存;
所述的统一接口根据入参computeActionType,获取全局map中对应的实现
类,初始化实现类,并把请求入参map赋值到实现类中,执行实现类,把执行
结果返回给用户。
3.根据权利要求1所述的在web应用中实现在线升级代码的方法,其特征
在于:所述的启动模块,在web应用启动时执行,遍历应...

【专利技术属性】
技术研发人员:钟健波杨松季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1