CN106789249A - 热更新方法、客户端及服务器 - Google Patents
热更新方法、客户端及服务器 Download PDFInfo
- Publication number
- CN106789249A CN106789249A CN201611200466.1A CN201611200466A CN106789249A CN 106789249 A CN106789249 A CN 106789249A CN 201611200466 A CN201611200466 A CN 201611200466A CN 106789249 A CN106789249 A CN 106789249A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- edition
- server
- version number
- heat
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0846—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种热更新方法、客户端及服务器,服务器接收客户端运行应用程序时发送的携带应用程序的配置文件的版本号的更新请求,根据热更新平台的读写锁状态确定目标配置文件,并向客户端发送目标配置文件。该过程中,目标配置文件中的Commcon Bundle和Patch是一致的,因此能够保证Commcon Bundle和Path的一致性,避免热更新过程中出现错误。
Description
技术领域
本申请实施例涉及计算机通信领域,尤其涉及一种热更新方法、客户端及服务器。
背景技术
目前,基于JavaScript的开源框架React Native(以下简称为RN)的广泛应用,使得应用程序(Application,APP)摆脱了发版的限制,服务器发布RN代码,客户端根据RN代码,在不关闭APP的情况下对APP的bug进行修复,使得APP像网页一样完成热更新。
通常情况下,对于混合开发的APP来说,一个APP需要开发多个RN页面,而每一个RN页面对应一个Bundle文件,使得APP安装包过大。为了避免该问题的出现,热更新过程中,服务器针对不同的Bundle文件进行通用抽象,生成共同Bundle(Common Bundle);每个RN页面的服务Bundle(Service Bundle)根据Common Bundle结合指定的算法生成补丁(Path);服务器将Common Bundle和Patch作为两个独立的文件单独下发给客户端。其中,CommonBundle和Patch称之为热更新配置信息。客户端接收到热更新配置信息后,根据热更新配置信息生成Service Bundle给具体的RN页面使用,从而实现热更新。
上述热更新过程中,热更新配置信息的下发涉及两个文件:Common Bundle和Patch。若服务器对Common Bundle和Patch均进行更新,则客户端在请求热更新配置信息时,服务器无法保证将Common Bundle和Patch同时下发给客户端,使得Common Bundle和Patch不一致。若客户端根据不一致的Common Bundle和Patch对APP进行热更新,则出现错误。
发明内容
本申请提供一种热更新方法、客户端及服务器,通过利用“读写锁”机制,实现热更新过程中,Common Bundle和Patch一致性的目的。
第一方面,本申请实施例提供一种热更新方法,包括:
服务器接收客户端运行应用程序时发送的更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
所述服务器根据热更新平台的读写锁状态,确定目标配置文件;
所述服务器向所述客户端发送所述目标配置文件。
在一种可行的实现方式中,所述服务器根据热更新平台的读写锁状态,确定目标配置文件之前,还包括:
所述服务器判断第二版本号是否小于第三版本号,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号;
所述服务器根据热更新平台的读写锁状态,确定目标配置文件,包括:
若所述第二版本号小于所述第三版本号,则所述服务器确定所述读写锁状态;
若所述读写锁状态为开启状态,则所述服务器从所述热更新平台获取所述第三版本号对应的配置文件,并将所述第三版本号对应的配置文件作为所述目标配置文件。
在一种可行的实现方式中,上述的方法还包括:
若所述读写锁为关闭状态,则所述服务器判断所述第二版本号是否大于所述第一版本号;
若所述第二版本号大于所述第一版本号,则所述服务器确定所述目标配置文件为所述第二版本号对应的配置文件;
若所述第二版本号不大于所述第一版本号,则所述服务器向所述客户端返回空数据。
在一种可行的实现方式中,上述的方法还包括:
若所述第二版本号不小于所述第三版本号,则所述服务器判断所述第二版本号是否大于所述第一版本号;
若所述第二版本号大于所述第一版本号,则所述服务器确定所述目标配置文件为所述第二版本号对应的配置文件;
若所述第二版本号不大于所述第一版本号,则所述服务器向所述客户端返回空数据。
在一种可行的实现方式中,所述服务器从所述热更新平台获取所述第三版本号对应的配置文件之后,还包括:
所述服务器将所述缓存中的配置文件更新为所述第三版本号对应的配置文件。
第二方面,本申请实施例提供一种热更新方法,包括:
客户端运行应用程序时向服务器发送更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
所述客户端接收所述服务器发送的目标配置文件,所述目标配置文件为所述服务器根据热更新平台的读写锁状态确定出的。
在一种可行的实现方式中,在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为开启状态时,所述目标配置文件为所述服务器从所述热更新平台获取到的、所述第三版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号。
在一种可行的实现方式中,在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为关闭状态、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
在一种可行的实现方式中,在所述服务器确定出第二版本号不小于第三版本号、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
第三方面,本申请实施例提供一种服务器,包括:
接收模块,用于接收客户端运行应用程序时发送的更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
处理模块,用于根据热更新平台的读写锁状态,确定目标配置文件;
发送模块,用于向所述客户端发送所述目标配置文件。
在一种可行的实现方式中,所述处理模块,在根据热更新平台的读写锁状态,确定目标配置文件之前,还用于判断第二版本号是否小于第三版本号,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号,若所述第二版本号小于所述第三版本号,则确定所述读写锁状态,若所述读写锁状态为开启状态,则从所述热更新平台获取所述第三版本号对应的配置文件,并将所述第三版本号对应的配置文件作为所述目标配置文件。
在一种可行的实现方式中,所述处理模块,还用于若所述读写锁为关闭状态,则判断所述第二版本号是否大于所述第一版本号,若所述第二版本号大于所述第一版本号,则确定所述目标配置文件为所述第二版本号对应的配置文件;
所述发送模块,还用于若所述第二版本号不大于所述第一版本号,则向所述客户端返回空数据。
在一种可行的实现方式中,所述处理模块,还用于若所述第二版本号不小于所述第三版本号,则判断所述第二版本号是否大于所述第一版本号,若所述第二版本号大于所述第一版本号,则确定所述目标配置文件为所述第二版本号对应的配置文件;
所述发送模块,还用于若所述第二版本号不大于所述第一版本号,则向所述客户端返回空数据。
在一种可行的实现方式中,所述处理模块,在从所述热更新平台获取所述第三版本号对应的配置文件之后,还用于将所述缓存中的配置文件更新为所述第三版本号对应的配置文件。
第四方面,本申请实施例提供一种客户端,包括:
发送模块,用于运行应用程序时向服务器发送更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
接收模块,用于接收所述服务器发送的目标配置文件,所述目标配置文件为所述服务器根据热更新平台的读写锁状态确定出的。
在一种可行的实现方式中,在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为开启状态时,所述目标配置文件为所述服务器从所述热更新平台获取到的、所述第三版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号。
在一种可行的实现方式中,在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为关闭状态、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
在一种可行的实现方式中,在所述服务器确定出第二版本号不小于第三版本号、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
本申请实施例提供的热更新方法、客户端及服务器,服务器接收客户端运行应用程序时发送的携带应用程序的配置文件的版本号的更新请求,根据热更新平台的读写锁状态确定目标配置文件,并向客户端发送目标配置文件。该过程中,目标配置文件中的Commcon Bundle和Patch是一致的,因此能够保证Commcon Bundle和Path的一致性,避免热更新过程中出现错误。
附图说明
为了更清楚地说明本申请方法实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请方法的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为目前APP的热更新过程示意图;
图2为本申请热更新方法实施例一的信令图;
图3为本申请热更新方法的系统架构示意图;
图4为本申请热更新方法实施例二的流程图;
图5为本申请服务器实施例的结构示意图;
图6为本申请客户端实施例的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下内容为结合附图及较佳实施例,对依据本申请申请的具体实施方式、结构、特征及其功效的详细说明。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为目前APP的热更新过程示意图。请参照图1,在服务器端,由于一个APP需要多个RN页面,每个RN页面对应一个可执行文件(以下称之为Bundle文件),为避免APP安装包过大,服务器在热更新过程中针对不同的Bundle文件进行通用抽象,生成一个APP对应的多个Bundle文件的共同可执行文件(以下称之为Common Bundle),每个RN页面的服务可执行文件(以下称之为Service Bundle)根据Common Bundle结合指定算法,如图中的命令比较文本文件(DIFF)生成补丁。然后,服务器将热更新配置信息,即将Common Bundle和Patch作为两个独立的文件单独下发给客户端。客户端根据热更新配置信息,为每一个RN页面生成Service Bundle。
上述热更新过程中,热更新配置信息的下发设计两个文件:即Common Bundle和Patch。其中,Pat车与实际业务相关,因此更改比较频繁;Commcon Bundle文件与业务逻辑无关,改动较少。当服务器只下发Patch时,服务器只需要保证Patch顺利下发即可,针对获取redis数据时做一些异常捕获。当同时更新Commcon Bundle和Patch时,因为该两个文件是先后生成的,而且Patch的生成是依赖于Commcon Bundle的,因此,当客户端请求热更新数据时,无论采用何种方式,服务器都无法保证Commcon Bundle和Path同时下发,无法保证Commcon Bundle和Path的一致性。
有鉴于此,本申请实施例提供一种热更新方法、客户端及服务器,通过利用“读写锁”机制,实现热更新过程中,Common Bundle和Patch一致性的目的。
图2为本申请热更新方法实施例一的信令图,包括:
101、客户端运行应用程序时向服务器发送更新请求。
本申请实施例中,一个APP需要多个RN页面,每个RN页面对应一个可执行文件,即Bundle文件。本步骤中,客户端在运行APP时,若需要对该APP进行热更新,则向服务器发送携带该应用程序的配置文件的版本号的更新请求,以请求热更新数据,该热更新数据也称之为目标配置文件。对于每一个RN页面来说,该目标配置文件包括Commcon Bundle和Patch。其中,对于一个具体的RN,Path为服务器针对该APP所有的RN页面提取CommconBundle后,基于Commcon Bundle,该RN页面的Service Bundle根据Common Bundle结合指定的算法生成的。因此,目标配置文件中的Commcon Bundle和Patch是一致的,能够保证Commcon Bundle和Path的一致性。
本申请实施例中,每一次生成配置文件都会生成对应的版本号,版本号越高,则配置文件越新。第一版本号为应用程序当前的配置文件的版本号,当热更新平台或服务器本地缓存中存在高于版本号高于第一版本号的配置文件时,则需要对应用程序执行热更新。
102、服务器根据热更新平台的读写锁状态,确定目标配置文件。
在接收到更新请求后,服务器获取热更新平台的读写锁状态,确定目标配置文件。其中,读写锁也成为全局锁,热更新平台上存储每次更新时的配置文件等。
103、服务器向客户端发送目标配置文件。
在确定出目标配置文件后,服务器向客户端发送该目标配置文件,相应的,客户端接收该目标配置文件,并根据该目标配置文件对当前正在运行的APP进行热更新。
本申请实施例提供的热更新方法,服务器接收客户端运行应用程序时发送的携带应用程序的配置文件的版本号的更新请求,根据热更新平台的读写锁状态确定目标配置文件,并向客户端发送目标配置文件。该过程中,目标配置文件中的Commcon Bundle和Patch是一致的,因此能够保证Commcon Bundle和Path的一致性,避免热更新过程中出现错误。
图3为本申请热更新方法的系统架构示意图。请参照图3,基于内容分发网络(Content Delivery Network,CDN)的系统架构中,包括客户端、服务器、热更新平台和通用服务层。其中,客户端上运行APP,包括版本管理模块、RN载体模块、预加载模块等,服务器上具有资源列表版本接口、单独RN页面版本接口等,热更新平台上具有补丁模块、版本管理模块、审核模块、日志模块等。热更新平台中,对了保证系统对在于读写性能的需求,在设计存储结构时,以单个资源为单位在redis中存储,如图中的补丁模块。redis的中文名称为重申,是一种典型的非关系性数据库(Not Only Structured Query Language,NoSQL)数据库服务,采用键-值(KEY-VALUE)存储结构。该系统架构中,通过读写锁的状态来控制对资源的读取,redis中数据的重传结构示例如下:
下面,在图3的基础上,用一个具体的实施例对本申请所述的热更新方法进行详细说明。具体的,可参加图4,图4为本申请热更新方法实施例二的流程图,包括:
201、客户端运行应用程序时向服务器发送更新请求。
其中,更新请求携带第一版本号,第一版本号为应用程序的配置文件的版本号。
202、服务器判断第二版本号是否小于第三版本号,若第二版本号小于第三版本号,则执行203;若第二版本号不小于第三版本号,则执行207;
其中,第二版本号为服务器本地缓存中存储的配置文件的版本号,第三版本号为热更新平台中存储的配置文件的版本号。
本步骤中,服务器根据第二版本号与第三版本号的大小,判断本地缓存中的配置文件的版本号是否大于热更新平台上配置文件的版本号。
203、服务器确定读写锁状态,若读写锁状态为开启状态,则执行204;若读写锁状态为关闭状态,则执行207。
本步骤中,服务器判断热更新平台的读写锁的状态,若读写锁被打开,即处于开启状态,则执行204;若读写锁未被打开,即处于关闭状态,则执行207。
204、服务器从所述热更新平台获取所述第三版本号对应的配置文件。
本步骤中,当读写锁处于开启状态时,服务器从热更新平台获取最新的配置文件,即第三版本号的配置文件,并将该第三版本号的配置文件作为目标配置文件。
205、服务器将第三版本号的配置文件作为目标配置文件并发送给客户端。
206、服务器将缓存中的配置文件更新为第三版本号对应的配置文件。
本步骤中,服务器将缓存中版本号较低的配置文件,更新为版本号较高的配置文件,即第三版本号的配置文件。通过对缓存中的配置文件进行更新,实现当热更新平台的读写锁状态关闭时,服务器从本地获取最新的配置文件,减少对热更新平台的访问次数。同时,当热更新平台出现异常时,基于贝蒂缓存数据做到服务降级,保证APP的顺利运行;当热更新平台服务恢复时,服务器自动检查热更新平台上配置文件的版本号和本地缓存中配置文件的版本号,进行本地缓存数据的更新。
207、服务器判断第二版本号是否大于第一版本号,若第二版本号大于所述第一版本号,则执行208;若第二版本号不大于所述第一版本号,则执行209。
通常情况下,服务器更新Commcon Bundle文件后,会修改热更新平台的读写所的状态,此时无法获取到热更新平台上的数据,因此服务器只能下发本地缓存中的数据。本步骤中,服务器根据第二版本号与第一版本号的大小,判断本地缓存中是否存储有版本号高于第一版本号的配置文件,即第二版本号对应的配置文件,若存在,则执行208;若不存在,则执行209。
208、服务器将第二版本号的配置文件作为目标配置文件发送给客户端。
发送过程中,服务器需要考虑接口,如资源列表版本接口、单独RN页面版本接口的可用性等。
209、服务器向客户端返回空数据。
本步骤中,服务器认为本地缓存和热更新平台中均没有版本号高于第一版本号的配置文件,无法对客户端当前运行的应用程序进行热更新,因此返回空数据。
另外,除了上述通过读写锁的状态实现Commcon Bundle和Patch一致性外,还可以采用其他的方式保证数据的一致性。例如,利用redis的原子性保证数据的更新。
具体的,热更新平台中所有的数据都是以一个Key全部存放在redis中,数据的更新则是通过redis的key的设置(set)、获取(get)操作来实现对应值的更新。其中,redis中数据的存储结构示例如下:
图5为本申请服务器实施例的结构示意图,包括:
接收模块11,用于接收客户端运行应用程序时发送的更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
处理模块12,用于根据热更新平台的读写锁状态,确定目标配置文件;
发送模块13,用于向所述客户端发送所述目标配置文件。
本申请实施例提供的服务器,在接收客户端运行应用程序时发送的携带应用程序的配置文件的版本号的更新请求后,根据热更新平台的读写锁状态确定目标配置文件,并向客户端发送目标配置文件。该过程中,目标配置文件中的Commcon Bundle和Patch是一致的,因此能够保证Commcon Bundle和Path的一致性,避免热更新过程中出现错误。
可选的,在本申请一实施例中,所述处理模块12,在根据热更新平台的读写锁状态,确定目标配置文件之前,还用于判断第二版本号是否小于第三版本号,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号,若所述第二版本号小于所述第三版本号,则确定所述读写锁状态,若所述读写锁状态为开启状态,则从所述热更新平台获取所述第三版本号对应的配置文件,并将所述第三版本号对应的配置文件作为所述目标配置文件。
可选的,在本申请一实施例中,所述处理模块12,还用于若所述读写锁为关闭状态,则判断所述第二版本号是否大于所述第一版本号,若所述第二版本号大于所述第一版本号,则确定所述目标配置文件为所述第二版本号对应的配置文件;
所述发送模块13,还用于若所述第二版本号不大于所述第一版本号,则向所述客户端返回空数据。
可选的,在本申请一实施例中,所述处理模块12,还用于若所述第二版本号不小于所述第三版本号,则判断所述第二版本号是否大于所述第一版本号,若所述第二版本号大于所述第一版本号,则确定所述目标配置文件为所述第二版本号对应的配置文件;
所述发送模块13,还用于若所述第二版本号不大于所述第一版本号,则向所述客户端返回空数据。
可选的,在本申请一实施例中,所述处理模块12,在从所述热更新平台获取所述第三版本号对应的配置文件之后,还用于将所述缓存中的配置文件更新为所述第三版本号对应的配置文件。
图6为本申请客户端实施例的结构示意图,包括:
发送模块21,用于运行应用程序时向服务器发送更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
接收模块22,用于接收所述服务器发送的目标配置文件,所述目标配置文件为所述服务器根据热更新平台的读写锁状态确定出的。
本申请实施例提供的客户端,在运行应用程序时,向服务器发送携带该应用程序的配置文件的版本号的更新请求,使得服务器根据热更新平台的读写锁状态确定目标配置文件,并向客户端发送目标配置文件。该过程中,目标配置文件中的Commcon Bundle和Patch是一致的,因此能够保证Commcon Bundle和Path的一致性,避免热更新过程中出现错误。
可选的,在本申请一实施例中,在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为开启状态时,所述目标配置文件为所述服务器从所述热更新平台获取到的、所述第三版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号。
可选的,在本申请一实施例中,在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为关闭状态、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
可选的,在本申请一实施例中,在所述服务器确定出第二版本号不小于第三版本号、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (11)
1.一种热更新方法,其特征在于,包括:
服务器接收客户端运行应用程序时发送的更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
所述服务器根据热更新平台的读写锁状态,确定目标配置文件;
所述服务器向所述客户端发送所述目标配置文件。
2.根据权利要求1所述的方法,其特征在于,所述服务器根据热更新平台的读写锁状态,确定目标配置文件之前,还包括:
所述服务器判断第二版本号是否小于第三版本号,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号;
所述服务器根据热更新平台的读写锁状态,确定目标配置文件,包括:
若所述第二版本号小于所述第三版本号,则所述服务器确定所述读写锁状态;
若所述读写锁状态为开启状态,则所述服务器从所述热更新平台获取所述第三版本号对应的配置文件,并将所述第三版本号对应的配置文件作为所述目标配置文件。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述读写锁为关闭状态,则所述服务器判断所述第二版本号是否大于所述第一版本号;
若所述第二版本号大于所述第一版本号,则所述服务器确定所述目标配置文件为所述第二版本号对应的配置文件;
若所述第二版本号不大于所述第一版本号,则所述服务器向所述客户端返回空数据。
4.根据权利要求2所述的方法,其特征在于,还包括:
若所述第二版本号不小于所述第三版本号,则所述服务器判断所述第二版本号是否大于所述第一版本号;
若所述第二版本号大于所述第一版本号,则所述服务器确定所述目标配置文件为所述第二版本号对应的配置文件;
若所述第二版本号不大于所述第一版本号,则所述服务器向所述客户端返回空数据。
5.根据权利要求2所述的方法,其特征在于,所述服务器从所述热更新平台获取所述第三版本号对应的配置文件之后,还包括:
所述服务器将所述缓存中的配置文件更新为所述第三版本号对应的配置文件。
6.一种热更新方法,其特征在于,包括:
客户端运行应用程序时向服务器发送更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
所述客户端接收所述服务器发送的目标配置文件,所述目标配置文件为所述服务器根据热更新平台的读写锁状态确定出的。
7.根据权利要求6所述的方法,其特征在于,
在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为开启状态时,所述目标配置文件为所述服务器从所述热更新平台获取到的、所述第三版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号,所述第三版本号为所述热更新平台中存储的配置文件的版本号。
8.根据权利要求6所述的方法,其特征在于,在所述服务器确定出第二版本号小于第三版本号、且所述热更新平台的读写锁状态为关闭状态、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
9.根据权利要求6所述的方法,其特征在于,在所述服务器确定出第二版本号不小于第三版本号、且所述第二版本号大于所述第一版本号时,则所述目标配置文件为所述第二版本号对应的配置文件,所述第二版本号为所述服务器本地缓存中存储的配置文件的版本号。
10.一种服务器,其特征在于,包括:
接收模块,用于接收客户端运行应用程序时发送的更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
处理模块,用于根据热更新平台的读写锁状态,确定目标配置文件;
发送模块,用于向所述客户端发送所述目标配置文件。
11.一种客户端,其特征在于,包括:
发送模块,用于运行应用程序时向服务器发送更新请求,所述更新请求携带第一版本号,所述第一版本号为所述应用程序的配置文件的版本号;
接收模块,用于接收所述服务器发送的目标配置文件,所述目标配置文件为所述服务器根据热更新平台的读写锁状态确定出的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611200466.1A CN106789249B (zh) | 2016-12-22 | 2016-12-22 | 热更新方法、客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611200466.1A CN106789249B (zh) | 2016-12-22 | 2016-12-22 | 热更新方法、客户端及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106789249A true CN106789249A (zh) | 2017-05-31 |
CN106789249B CN106789249B (zh) | 2019-12-10 |
Family
ID=58897793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611200466.1A Active CN106789249B (zh) | 2016-12-22 | 2016-12-22 | 热更新方法、客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106789249B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463405A (zh) * | 2017-08-04 | 2017-12-12 | 深圳市华傲数据技术有限公司 | 一种应用程序的更新方法及装置 |
CN107729041A (zh) * | 2017-07-26 | 2018-02-23 | 上海壹账通金融科技有限公司 | 应用程序热更新方法、装置、终端和存储介质 |
CN109445833A (zh) * | 2018-11-09 | 2019-03-08 | 苏宁消费金融有限公司 | 一种React-native热更新的方法 |
CN111193787A (zh) * | 2019-12-24 | 2020-05-22 | 国铁吉讯科技有限公司 | 同步方法及装置 |
CN111769965A (zh) * | 2019-10-12 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 信息处理方法、装置和设备 |
CN112527357A (zh) * | 2020-12-14 | 2021-03-19 | 中国平安人寿保险股份有限公司 | 服务热加载更新方法、装置、计算机设备和存储介质 |
CN113448611A (zh) * | 2021-08-31 | 2021-09-28 | 中邮消费金融有限公司 | 一种应用程序快速热更新的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101283572A (zh) * | 2005-03-01 | 2008-10-08 | 方瑞公司 | 对移动设备的应用程序更新部署 |
CN101557584A (zh) * | 2009-05-14 | 2009-10-14 | 中兴通讯股份有限公司 | 一种实现移动终端应用权限控制的方法及装置 |
WO2016049376A1 (en) * | 2014-09-24 | 2016-03-31 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US20160162275A1 (en) * | 2014-12-03 | 2016-06-09 | Verizon Patent And Licensing Inc. | Identification and isolation of incompatible applications during a platform update |
CN106201607A (zh) * | 2016-07-04 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本的升级方法及设备 |
CN106202176A (zh) * | 2016-06-27 | 2016-12-07 | 武汉斗鱼网络科技有限公司 | 一种实现网站版本热升级的方法及系统 |
-
2016
- 2016-12-22 CN CN201611200466.1A patent/CN106789249B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101283572A (zh) * | 2005-03-01 | 2008-10-08 | 方瑞公司 | 对移动设备的应用程序更新部署 |
CN101557584A (zh) * | 2009-05-14 | 2009-10-14 | 中兴通讯股份有限公司 | 一种实现移动终端应用权限控制的方法及装置 |
WO2016049376A1 (en) * | 2014-09-24 | 2016-03-31 | Oracle International Corporation | System and method for supporting patching in a multitenant application server environment |
US20160162275A1 (en) * | 2014-12-03 | 2016-06-09 | Verizon Patent And Licensing Inc. | Identification and isolation of incompatible applications during a platform update |
CN106202176A (zh) * | 2016-06-27 | 2016-12-07 | 武汉斗鱼网络科技有限公司 | 一种实现网站版本热升级的方法及系统 |
CN106201607A (zh) * | 2016-07-04 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本的升级方法及设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729041A (zh) * | 2017-07-26 | 2018-02-23 | 上海壹账通金融科技有限公司 | 应用程序热更新方法、装置、终端和存储介质 |
WO2019019643A1 (zh) * | 2017-07-26 | 2019-01-31 | 深圳壹账通智能科技有限公司 | 应用程序热更新方法、装置、终端和存储介质 |
CN107729041B (zh) * | 2017-07-26 | 2020-10-20 | 深圳壹账通智能科技有限公司 | 应用程序热更新方法、装置、终端和存储介质 |
CN107463405A (zh) * | 2017-08-04 | 2017-12-12 | 深圳市华傲数据技术有限公司 | 一种应用程序的更新方法及装置 |
CN107463405B (zh) * | 2017-08-04 | 2020-07-17 | 深圳市华傲数据技术有限公司 | 一种应用程序的更新方法及装置 |
CN109445833A (zh) * | 2018-11-09 | 2019-03-08 | 苏宁消费金融有限公司 | 一种React-native热更新的方法 |
CN111769965A (zh) * | 2019-10-12 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 信息处理方法、装置和设备 |
CN111193787A (zh) * | 2019-12-24 | 2020-05-22 | 国铁吉讯科技有限公司 | 同步方法及装置 |
CN111193787B (zh) * | 2019-12-24 | 2022-11-25 | 国铁吉讯科技有限公司 | 同步方法及装置 |
CN112527357A (zh) * | 2020-12-14 | 2021-03-19 | 中国平安人寿保险股份有限公司 | 服务热加载更新方法、装置、计算机设备和存储介质 |
CN113448611A (zh) * | 2021-08-31 | 2021-09-28 | 中邮消费金融有限公司 | 一种应用程序快速热更新的方法及系统 |
CN113448611B (zh) * | 2021-08-31 | 2021-11-30 | 中邮消费金融有限公司 | 一种应用程序快速热更新的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106789249B (zh) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789249A (zh) | 热更新方法、客户端及服务器 | |
US9696981B2 (en) | Incremental deployment of computer software program logic | |
CN102754104B (zh) | 在相关计算系统之间共享计算操作结果的系统和方法 | |
CN104011677B (zh) | 利用流技术在多个目标上部署软件映像的方法及系统 | |
US8166261B1 (en) | Systems and methods for seeding a fingerprint cache for data deduplication | |
CN104715001A (zh) | 用于对数据处理系统的集群中的共享资源执行写入操作的方法和系统 | |
US20180095848A1 (en) | Restoring distributed shared memory data consistency within a recovery process from a cluster node failure | |
CN102959508A (zh) | 更新考虑服务模型约束的节点 | |
CN104951308B (zh) | Docker Registry的管理优化方式及装置 | |
JP6707586B2 (ja) | スクリプトエンジンを用いたデータスクレイピングシステム、方法、及びコンピュータプログラム | |
KR20190124630A (ko) | 스크립트 엔진을 이용한 데이터 스크래핑 시스템, 방법 및 컴퓨터 프로그램 | |
US10929216B2 (en) | Application crash analysis techniques when memory dump and debug symbols are not co-located | |
CN106357791A (zh) | 业务处理方法、装置及系统 | |
CN102006297B (zh) | 一种基于两级策略决策的访问控制方法及其系统 | |
CN108228206A (zh) | 一种应用程序管理方法及装置 | |
CN112306993A (zh) | 基于Redis的数据读取方法、装置、设备及可读存储介质 | |
US20130041868A1 (en) | Data synchronization | |
US10769307B2 (en) | Processing system using natural language processing for performing dataset filtering and sanitization | |
CN107391539B (zh) | 事务处理方法、服务器和存储介质 | |
CN107979683B (zh) | 终端应用控制方法、装置及系统 | |
CN113243011A (zh) | 更新数据库中的多条数据记录 | |
WO2023111910A1 (en) | Rolling back database transaction | |
CN116149717A (zh) | 一种元数据的动态部署方法、装置、设备及介质 | |
CN112506705B (zh) | 一种分布式存储的配置信息备份方法及装置 | |
CN101853269A (zh) | 分布数据更新的一致性处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |