CN114928603A - 客户端软件的升级方法、装置、电子设备和介质 - Google Patents
客户端软件的升级方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN114928603A CN114928603A CN202210531456.5A CN202210531456A CN114928603A CN 114928603 A CN114928603 A CN 114928603A CN 202210531456 A CN202210531456 A CN 202210531456A CN 114928603 A CN114928603 A CN 114928603A
- Authority
- CN
- China
- Prior art keywords
- upgrade
- identifier
- record
- client
- latest
- 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
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 20
- 230000000694 effects Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 17
- 238000012423 maintenance Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000015654 memory Effects 0.000 description 10
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000012163 sequencing technique Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Abstract
本公开提供了一种客户端软件的升级方法,可用于金融领域或其他领域。该方法包括:接收客户端发送的查询请求;响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识;判断所述第一标识和所述第二标识的状态;当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号;以及当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。本公开还提供了一种客户端软件的装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及计算机技术领域,还可用于金融领域或其他领域,具体地,涉及一种客户端软件的升级方法、装置、设备、介质和程序产品。
背景技术
客户端(Client)又叫用户端,是指与服务端相对应,为客户提供本地服务的程序。在传统的C/S架构体系下,客户端软件需安装在客户的移动或PC设备(如手机、平板、个人电脑等)上,与服务端程序互相配合运行。进入移动互联网时代,在生物识别、5G、人工智能、物联网、大数据等新一代信息技术的加持下,各类面向客户的业务、产品、场景创新层出不穷,所以作为可以在线上直接触达客户的客户端,逐渐成为各类市场主体争相发力的创新高地。为了能够在激烈的市场竞争中尽可能争取客户、服务客户、留存客户,无论是手机客户端软件还是电脑客户端软件,升级改造非常频繁,每月甚至每周推出新客户端软件逐渐成为常态。
在实现本公开构思的过程中,发明人发现,目前的客户端软件升级时,由于最新升级包地址下是否存在升级包和升级记录生效是分离的,会导致因最新升级包地址下不存在升级包而升级失败的问题,影响用户体验。
发明内容
鉴于上述问题,本公开提供了一种客户端软件的升级方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种客户端软件的升级方法,应用于服务端,所述服务端与客户端通信连接,所述方法包括:接收客户端发送的查询请求,所述查询请求包括客户端软件类型和客户端软件版本号;响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识,所述第一标识用于表示所述升级记录是否已读取,所述第二标识用于表示所述升级记录是否已生效;判断所述第一标识和所述第二标识的状态;当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号,以确定客户端软件版本和最新升级包版本的新旧关系;以及当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。
根据本公开的实施例,所述方法还包括:当所述第二标识的状态表明所述升级记录未生效时,向所述客户端发送第二升级标志。
根据本公开的实施例,所述方法还包括:当所述第一标识的状态表明所述升级记录未读取时,确定所述查询请求为针对所述升级记录的首次升级请求;以及响应于所述首次升级请求,将所述第一标识的状态从未读取状态更改为已读取状态,其中,所述第一标识的未读取状态表明所述升级记录未读取,所述第一标识的已读取状态表明所述升级记录已读取。
根据本公开的实施例,所述方法还包括:响应于所述首次升级请求,确定所述最新升级包地址下是否存在升级包;以及当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态,其中,所述第二标识的无效状态表明所述升级记录未生效,所述第二标识的有效状态表明所述升级记录已生效。
根据本公开的实施例,所述方法还包括:当所述第一标识的状态表明所述升级记录已读取时,确定所述查询请求为针对所述升级记录的非首次升级请求;以及响应于所述非首次升级请求,直接判断所述第二标识的状态。
根据本公开的实施例,所述方法还包括:当所述第二标识的状态表明所述升级记录未生效时,执行轮询操作,所述执行轮询操作的步骤包括:确定所述最新升级包地址下是否存在升级包;和当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态。
根据本公开的实施例,所述执行轮询操作的步骤还包括:当所述最新升级包地址下不存在升级包时,发送通知。
根据本公开的实施例,所述发送通知的步骤包括:确定预设轮询周期和预设读取次数阈值;获取在一个所述预设轮询周期内,从所述服务端读取与所述客户端软件类型对应的升级记录的读取次数;比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型;以及基于所述通知类型,发送通知。
根据本公开的实施例,所述比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型的步骤包括:当所述读取次数大于等于预设读取次数阈值时,确定通知类型为第一类型。
根据本公开的实施例,所述方法还包括:当所述读取次数小于预设读取次数阈值时,确定通知类型为第二类型。
根据本公开的实施例,所述方法还包括:当发送通知后,将预设轮询周期设置为前一个预设轮询周期的一半,将预设读取次数阈值设置为前一个预设读取次数阈值的一半,重复执行所述轮询操作,直至所述最新升级包地址下存在升级包。
本公开的第二方面提供了一种客户端软件的升级装置,应用于服务端,所述服务端与客户端通信连接,所述装置包括:接收模块,用于接收客户端发送的查询请求,所述查询请求包括客户端软件类型和客户端软件版本号;读取模块,用于响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识,所述第一标识用于表示所述升级记录是否已读取,所述第二标识用于表示所述升级记录是否已生效;判断模块,用于判断所述第一标识和所述第二标识的状态;比较模块,用于当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号,以确定客户端软件版本和最新升级包版本的新旧关系;以及发送模块,用于当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。
根据本公开的实施例,所述装置还包括第二升级模块,所述第二升级模块用于当所述第二标识的状态表明所述升级记录未生效时,向所述客户端发送第二升级标志。
根据本公开的实施例,所述装置还包括:首次升级模块,所述首次升级模块用于当所述第一标识的状态表明所述升级记录未读取时,确定所述查询请求为针对所述升级记录的首次升级请求;以及响应于所述首次升级请求,将所述第一标识的状态从未读取状态更改为已读取状态,其中,所述第一标识的未读取状态表明所述升级记录未读取,所述第一标识的已读取状态表明所述升级记录已读取。
根据本公开的实施例,所述首次升级模块还包括第一更改模块,所述第一更改模块用于响应于所述首次升级请求,确定所述最新升级包地址下是否存在升级包;以及当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态,其中,所述第二标识的无效状态表明所述升级记录未生效,所述第二标识的有效状态表明所述升级记录已生效。
根据本公开的实施例,所述装置还包括第三升级模块,所述第三升级模块用于当所述第一标识的状态表明所述升级记录已读取时,确定所述查询请求为针对所述升级记录的非首次升级请求;以及响应于所述非首次升级请求,直接判断所述第二标识的状态。
根据本公开的实施例,所述装置还包括轮询模块,所述轮询模块用于当所述第二标识的状态表明所述升级记录未生效时,执行轮询操作,所述执行轮询操作的步骤包括:确定所述最新升级包地址下是否存在升级包;和当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态。
根据本公开的实施例,所述轮询模块还包括通知发送模块,所述通知模块用于当所述最新升级包地址下不存在升级包时,发送通知。
根据本公开的实施例,所述通知发送模块还包括通知生成模块,所述通知生成模块用于确定预设轮询周期和预设读取次数阈值;获取在一个所述预设轮询周期内,从所述服务端读取与所述客户端软件类型对应的升级记录的读取次数;比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型;以及基于所述通知类型,发送通知。
根据本公开的实施例,所述通知生成模块包括第一通知模块,所述第一通知模块用于当所述读取次数大于等于预设读取次数阈值时,确定通知类型为第一类型。
根据本公开的实施例,所述通知生成模块还包括第二通知模块,所述第二通知模块用于当所述读取次数小于预设读取次数阈值时,确定通知类型为第二类型。
根据本公开的实施例,所述轮询模块还包括修改模块,所述修改模块用于当发送通知后,将预设轮询周期设置为前一个预设轮询周期的一半,将预设读取次数阈值设置为前一个预设读取次数阈值的一半,重复执行所述轮询操作,直至所述最新升级包地址下存在升级包。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。
根据本公开的实施例,通过第一标识和第二标识组成的双标识字段,对是否上传升级包进行判断,保证在最新升级包地址下存在升级包时,升级记录才会生效,解决了最新升级包地址下是否存在升级包和升级记录生效的分离问题,以保证客户端收到第一升级标志的同时能正常进行升级操作,避免因运维人员忘记“上传新客户端实体至服务器”可能导致的安全事件,同时不对正常升级流程造成额外干扰,显著降低了系统开销。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的客户端软件的升级方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的客户端软件的升级方法的流程图;
图3示意性示出了根据本公开实施例的客户端软件的升级方法发送通知的流程图;
图4示意性示出了根据本公开实施例的客户端软件的升级方法的主要装置逻辑关系图;
图5示意性示出了根据本公开实施例的客户端软件的升级方法的提示框示例图;
图6示意性示出了根据本公开实施例的客户端软件的升级装置的结构框图;
图7示意性示出了根据本公开实施例的客户端软件的升级装置的轮询模块的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现客户端软件的升级方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
由于客户端软件更新换代较快,经常需要面临版本升级问题。为了保证客户的旧客户端软件顺利升级为新客户端软件,客户端软件提供方设计了规范的升级步骤。目前的常规升级流程为,客户端软件提供方的运维人员上传新客户端软件升级包至服务器,然后在数据库中插入新版本号,客户端预置的升级程序开始运行,判断数据库中存在新版本号后,在前台弹窗提示客户,引导客户下载新客户端软件升级包至本地,对本地旧客户端软件进行替换,从而完成升级。
经过对以上流程进行分析发现,虽然“数据库中插入新版本号”与“上传新客户端实体至服务器”这两步操作,在升级流程中存在高度的先后依赖关系,但均属于运维人员的线下手工操作。一旦运维人员在“数据库中插入新版本号”前,未及时甚至直接忘记“上传新客户端升级包至服务器”,则升级程序运行后,由于获取不到新客户端升级包,必然导致大范围升级失败,从而引发安全生产事件。
基于上述问题,本公开的实施例提供了一种客户端软件的升级方法,应用于服务端,所述服务端与客户端通信连接,所述方法包括:接收客户端发送的查询请求,所述查询请求包括客户端软件类型和客户端软件版本号;响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识,所述第一标识用于表示所述升级记录是否已读取,所述第二标识用于表示所述升级记录是否已生效;判断所述第一标识和所述第二标识的状态;当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号,以确定客户端软件版本和最新升级包版本的新旧关系;以及当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。
可见,本公开实施例通过第一标识和第二标识组成的双标识字段,对是否上传升级包进行判断,保证在最新升级包地址下存在升级包时,升级记录才会生效,解决了最新升级包地址下是否存在升级包和升级记录生效的分离问题,以保证客户端收到第一升级标志的同时能正常进行升级操作。
需要说明的是,本公开确定的软件的升级方法和装置可用于金融领域的客户端软件的升级,也可用于除金融领域之外的任意领域的软件的升级,本公开软件的升级的方法和装置的应用领域不做限定。
图1示意性示出了根据本公开实施例的客户端软件的升级方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的客户端软件的升级方法一般可以由服务器105执行。相应地,本公开实施例所提供的客户端软件的升级装置一般可以设置于服务器105中。本公开实施例所提供的客户端软件的升级方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的客户端软件的升级装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图5对公开实施例的客户端软件的升级方法进行详细描述。
图2示意性示出了根据本公开实施例的客户端软件的升级方法的流程图。
本公开实施例的客户端软件的升级方法应用于服务端,所述服务端与客户端通信连接,如图2所示,具体包括操作S210~操作S250。
在操作S210,接收客户端发送的查询请求,所述查询请求包括客户端软件类型和客户端软件版本号;其中,软件类型包括安卓版和电脑版等,不同软件类型的升级包不同,因此需要查询软件类型。
在操作S220,响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识,所述第一标识用于表示所述升级记录是否已读取,所述第二标识用于表示所述升级记录是否已生效;示例性的,第一标识已读取可以用Yes表示,未读取可以用No表示。
在操作S230,判断所述第一标识和所述第二标识的状态;
在操作S240,当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号,以确定客户端软件版本和最新升级包版本的新旧关系;以及
在操作S250,当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。其中,第一升级标志的作用是控制软件的前端向用户显示强制升级的消息框,提示用户主动进行升级,然后用户点击立即升级后,根据最新升级包的地址,下载升级包进行升级。
根据本公开的实施例,所述方法还包括:当所述第二标识的状态表明所述升级记录未生效时,向所述客户端发送第二升级标志。其中,第二升级标志的作用是控制软件的前端不提示用户升级,第2个及之后用户不会收到升级提醒,使得用户的体验感更流畅,不会出现点击立即升级却升级失败的情况。
根据本公开的实施例,所述方法还包括:当所述第一标识的状态表明所述升级记录未读取时,确定所述查询请求为针对所述升级记录的首次升级请求;以及响应于所述首次升级请求,将所述第一标识的状态从未读取状态更改为已读取状态,其中,所述第一标识的未读取状态表明所述升级记录未读取,所述第一标识的已读取状态表明所述升级记录已读取。由于第一标识的初始状态是未读取,第二标识的初始状态是无效状态。在首次读取时,由于第一标识是未读取状态,因此可以确定这是首次升级请求。
根据本公开的实施例,所述方法还包括:响应于所述首次升级请求,确定所述最新升级包地址下是否存在升级包;以及当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态,其中,所述第二标识的无效状态表明所述升级记录未生效,所述第二标识的有效状态表明所述升级记录已生效。
根据本公开的实施例,所述方法还包括:当所述第一标识的状态表明所述升级记录已读取时,确定所述查询请求为针对所述升级记录的非首次升级请求;以及响应于所述非首次升级请求,直接判断所述第二标识的状态。由于在首次升级请求时,已经读取了升级记录,因此第一标识为已读取状态,此时直接判断第二标识的状态即可。如果第二标识是无效状态,此时最新升级包地址下不存在升级包,向客户端发送第二升级标志,不再提示用户升级,用户可直接进入软件,避免出现升级失败的情况。如果第二标识是有效状态,此时最新升级包地址下存在升级包,向客户端发送第一升级标志,提示用户升级,由于升级包已经正确放置,因此确保能够升级成功。由于仅在首次升级请求时会去升级包地址下实际进行判断,第2个及之后用户无需进行判断,显著降低了系统开销。
本公开实施例提供的客户端软件的升级方法,针对常规升级流程存在的不足,通过第一标识和第二标识组成的双标识字段,对是否上传升级包进行判断,保证在最新升级包地址下存在升级包时,升级记录才会生效,解决了最新升级包地址下是否存在升级包和升级记录生效的分离问题,以保证客户端收到第一升级标志的同时能正常进行升级操作,避免因运维人员忘记“上传新客户端实体至服务器”可能导致的安全事件,同时不对正常升级流程造成额外干扰,显著降低了系统开销。
根据本公开的实施例,所述方法还包括:当所述第二标识的状态表明所述升级记录未生效时,执行轮询操作,所述执行轮询操作的步骤包括:确定所述最新升级包地址下是否存在升级包;和当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态。当首次升级请求时发现最新升级包地址下不存在升级包,开始执行轮询操作,定期检查最新升级包地址下是否存在升级包。
根据本公开的实施例,所述执行轮询操作的步骤还包括:当所述最新升级包地址下不存在升级包时,发送通知。
图3示意性示出了根据本公开实施例的客户端软件的升级方法发送通知的流程图。
如图3所示,本公开实施例的客户端软件的升级方法发送通知的步骤包括操作S310~操作S340。
在操作S310,确定预设轮询周期和预设读取次数阈值。示例性的,轮询周期为60分钟,预设读取次数阈值为1000。具体预设轮询周期和预设读取次数阈值可以根据实际情况进行选择,此外,既可以在前台由运维人员自行设计,亦可根据周期的访问量由程序动态进行调整,以进一步降低系统开销,同时提高提醒的及时性,本公开实施例对此不做限定。
在操作S320,获取在一个所述预设轮询周期内,从所述服务端读取与所述客户端软件类型对应的升级记录的读取次数。当首次升级失败后,第2个及之后的用户启动客户端软件,会在后台记录读取次数。
在操作S330,比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型。在一个预设轮询周期内,当读取次数超过预设读取次数阈值时,表示情况紧急,用户有大量的升级需求,此时需要快速通知相关人员修复错误,应当采取快速的通知方式告知相关人员;当读取次数小于预设读取次数阈值时,表示情况相对不紧急,可以采取相对缓和的方式通知相关人员,根据其实际安排进行修复。
在操作S340,基于所述通知类型,发送通知。
根据本公开的实施例,所述比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型的步骤包括:当所述读取次数大于等于预设读取次数阈值时,确定通知类型为第一类型。此时需要快速通知相关人员,示例性的,第一类型可以是电话的方式。
根据本公开的实施例,所述方法还包括:当所述读取次数小于预设读取次数阈值时,确定通知类型为第二类型。此时需要告知相关人员即可,示例性的,第二类型可以是邮件类型。
根据本公开的实施例,所述方法还包括:当发送通知后,将预设轮询周期设置为前一个预设轮询周期的一半,将预设读取次数阈值设置为前一个预设读取次数阈值的一半,重复执行所述轮询操作,直至所述最新升级包地址下存在升级包。为了加快错误修复进度,需要缩短轮询周期和读取次数阈值,例如第一个轮询周期为60分钟,读取次数阈值为1000,则第二个轮询周期要小于第一个轮询周期,如为30分钟,相应的,读取次数阈值可以为500,直至所述最新升级包地址下存在升级包。由此可以加快相关人员对问题的修复,提高效率。
图4示意性示出了根据本公开实施例的客户端软件的升级方法的主要装置逻辑关系图。
如图4所示,本公开实施例的客户端软件的升级方法的主要装置有客户端、服务端、存储管理单元和配置管理单元。该方法应用于服务端,其中服务端与客户端通信连接。升级记录存储在存储管理单元中,服务端与存储管理单元通信连接,服务端可以从存储管理单元中获取相应的升级记录,用以响应于客户端的查询请求进行读取。配置管理单元用于设置信息,包括预设轮询周期和预设读取次数阈值,以及相关运维人员的邮箱、手机号等,配置管理单元与存储管理单元通信连接,将设置的信息存储到存储管理单元中,以供服务端获取。
图5示意性示出了根据本公开实施例的客户端软件的升级方法的提示框示例图。
示例性的,具体客户端、服务端、存储管理单元和配置管理单元的主要模块及功能如下:
1、存储管理单元
(1)版本配置表:是数据库中的一张二维表,包含“客户端类型”、“版本号”、“升级包地址”、“是否已读取”(有读取-YES,未读取-NO)、“是否已生效”(未生效-NULL,已生效-1)等5个主要字段,其中“是否已读取”和“是否已生效”是关键表字段,分别对应第一标识和第二标识;每次客户端版本号更新时,运维人员执行数据库脚本,在“数据库中插入新版本号”,“是否已生效”、“是否已读取”两个字段的初始值分别为NULL和NO。
(2)查询请求表:是数据库中的一张二维表,包含客户端向服务端发起查询的“客户端类型”、“请求时间”两个字段;
(3)阈值存储表:是数据库中的一张二维表,包含配置管理-阈值管理模块设置的周期、初始阈值,以及设置阈值的运维人员的邮箱、手机号等。
2、配置管理单元
(1)阈值管理模块:
该模块提供前台操作页面,供运维人员设置一个客户端对服务端访问量的统计周期及初始阈值,以及设置该阈值的运维人员的邮箱、手机号等;
3、客户端
(1)识别模块:
该模块部署在用户的本地客户端启动线程中,客户端启动后该模块会将本地客户端类型(如安卓版、电脑版)、本地版本号,上送至后台服务端接口(服务端-请求受理模块提供);
(2)显示模块
识别模块接收到后台接口(服务端-请求受理模块)返回的信息后,透传至显示模块,显示模块通过返回信息控制前端界面对用户进行升级信息显示,具体显示规则如下:
A、接口返回升级标志1:前端无需进行显示处理,无升级信息提示;
B、接口返回升级标志0:前端向用户显示“强制升级”消息框,具体样式如图5所示;用户点击“退出”,强制退出客户端;用户点击“立即升级”则连接接口返回的升级包地址,进行客户端升级;
2、服务端
服务端包括请求处理与轮询处理两个模块,主要模块功能如下,
(1)请求处理模块
该模块部署在服务端,提供查询接口给客户端-识别模块,接收到查询请求后,
第一步:在存储管理-版本配置表中,程序以客户端类型为查询条件,并将获得的所有查询记录按降序排列,获取最新版本号的数据库记录,记为record1;然后程序读取record1中的“版本号”、“升级包地址”、“是否已生效”、“是否已读取”共4个字段的值,记为version1、path1、isValid1、isRead1。
第二步:判断isRead1的值,
(1)如isRead1为“NO”(标识该记录尚未被客户端读取过,即第1次被访问),则继续判断isValid1的值,如isValid1为“NULL”,则根据path1的值(即存放客户端实体的路径),程序继续判断服务器的该路径下是否存在客户端实体(即判断运维人员是否已“上传新客户端升级包至服务器”),有两种结果:
A、实体存在,则对record1进行更新操作,将isValid1置为1(标识该记录已生效),isRead1置为Yes(标识该记录已被客户端读取)。然后比较本地版本号与version1的大小,如本地版本号<version1,则向客户端-识别模块返回升级标志0(即前端向用户显示“强制升级”消息框)以及升级包地址path1;如本地版本号>=version1,客户端-识别模块返回升级标志1(即前端无需进行显示处理,无升级信息提示);
B、实体不存在,则保持isValid1为“NULL”不变,仅将isRead1置为Yes(标识该记录已被客户端读取),然后向客户端-识别模块返回升级标志1(即前端无需进行显示处理,无升级信息提示),同时调起服务端轮询模块;
(2)如isRead1为“Yes”(标志该记录已经被客户端读取过,即当前是至少第2次被访问),则继续判断isValid1的值,有两种情况:
A、若isValid1为“1”,则向客户端-识别模块返回升级标志0(即前端向用户显示“强制升级”消息框)以及升级包地址path1;
B、若isValid1为“NULL”,则向客户端-识别模块返回升级标志1(即前端无需进行显示处理,无升级信息提示”;
(2)轮询模块
该模块由请求处理模块调起,具体实体形式为一个轮询线程,该线程包含:
A、参数读取单元:轮询模块被调起后,首先进入该单元,读取存储管理-阈值存储表中的预设轮询周期、预设读取次数阈值、邮箱、手机号信息,分别记为period、threshold、mail、phone,传入轮询启动单元;
B、轮询启动单元:该单元从‘参数读取单元’获取period、threshold、mail、phone的值,按照period的值(如60分钟)周期性启动;首先判断服务器的路径下(path1)是否存在客户端实体(即判断运维人员是否已“上传新客户端升级包至服务器”),
B-1:如不存在,则按该单元会读取存储管理-查询请求表中,统计“当前时间减去period的值”期间的所有记录,记为count1;
若count1<threshold(阈值),则调用邮件功能,给mail记录的地址发送邮件提醒;
若count1>=threshold,则调用短信功能,给phone记录的手机号码发送短信提醒,然后将period、threshold均除以2,作为新的period、threshold,记为period2(如30分钟)、threshold2;该单元按period2的值进行下一次周期性启动并进行阈值判断,依次循环类推,分别为period3、period4、...periodn;
B-2:如存在,则对record1进行更新操作,将isValid1置为1(标识该记录已生效),线程停止执行,不再轮询。
下面将结合实施例,对本公开实施例的客户端软件的升级方法进行详细说明,其中,两个实施例共同背景定义如下:某客户端软件的安卓版历史上一共发布过10个客户端版本,版本号顺序为1.0.0.0-1.0.0.9,均在存储管理-版本配置表中有记录,其中1.0.0.9为运维人员在版本配置表中插入的最新版本号。
实施例1
该实施例为正常操作流程的客户端升级流程,具体步骤如下:
步骤1:某用户本地安卓客户端版本号为1.0.0.6,启动客户端,向服务端发起版本号查询请求;
步骤2:服务端将本次请求信息记录到“查询请求表”中,同时在“版本配置表”中读取“安卓”对应所有记录中,排序后最新版本号为1.0.0.9,该记录对应的isValid为NULL,isRead为NO(即该客户为插入新版本号后,第一个访问服务端的客户),并获取升级包地址;
步骤3:服务端判断isRead为NO,并在升级包地址下找到客户端实体,所以将isRead置为Yes,isValid置为1(标识该记录已生效);然后比较本地版本号(1.0.0.6)与最新版本号(1.0.0.9)的大小,因为本地版本号<最新版本号,则向客户端-识别模块返回升级标志0以及升级包地址,前端向用户显示“强制升级”消息框;
步骤4:用户点击“立即升级”,连接升级包地址完成升级,将本地客户端由1.0.0.6升级至1.0.0.9;
步骤5:第2个及之后安卓用户启动客户端(假设本地版本号均低于1.0.0.9),向服务端发起版本号查询请求;
步骤6:服务端将请求信息记录到“查询请求表”中,同时在“版本配置表”中读取“安卓”对应所有记录中,排序后最新版本号为1.0.0.9,该记录对应的isValid为1,isRead为Yes,并获取升级包地址;
步骤7:服务端程序向客户端-识别模块返回升级标志0(即前端向用户显示“强制升级”消息框)以及升级包地址,前端向用户显示“强制升级”消息框;
步骤8:用户点击“立即升级”,连接升级包地址完成升级,将本地客户端升级至1.0.0.9。
实施例2
该实施例为异常操作流程的客户端升级流程,具体步骤如下:
步骤1:运维人员工作失误,仅在“数据库中插入新版本号”,忘记“上传新客户端实体至服务器”;
步骤2:某用户客户端软件的安卓客户端版本号为1.0.0.6,启动客户端,向服务端发起版本号查询请求;
步骤3:服务端将本次请求信息记录到“查询请求表”中,同时在“版本配置表”中读取“安卓”对应所有记录中,排序后最新版本号为1.0.0.9,该记录对应的isValid为NULL,isRead为NO(即该客户为插入新版本号后,第一个访问服务端的客户),并获取升级包地址;
步骤4:服务端判断isRead为NO,在升级包地址下未找到客户端实体,所以将isRead置为Yes(标识该记录已被客户端读取),然后向客户端-识别模块返回升级标志1(即前端无需进行显示处理,无升级信息提示),同时调起服务端轮询线程;
步骤5:第2个及之后安卓用户启动客户端(假设本地版本号均低于1.0.0.9),向服务端发起版本号查询请求;
步骤6:服务端将请求信息记录到“查询请求表”中,同时在“版本配置表”中读取“安卓”对应所有记录中,排序后最新版本号为1.0.0.9,该记录对应的isValid为NULL,isRead为Yes;
步骤7:向客户端-识别模块返回升级标志1,前端无需进行显示处理,无升级信息提示,即第2个及之后安卓用户不会收到升级提醒;
步骤8:服务端轮询线程调起,获取初始周期为60分钟,阈值为1000;线程判断客户端实体不存在,按周期启动后,读取存储管理-查询请求表中,“当前时间-60分钟”期间的记录总数为1500,大于1000,则调用短信功能,向数据库中记录的运维人员手机号码发送短信提醒;
步骤9:运维人员收到短信提醒后,紧急将客户端实体上传至地址;
步骤10:线程在下一个周期(60分钟)判断客户端实体已存在,将新版本号1.0.0.9记录对应的isValid置为1,并退出循环;
步骤11:第n个及n之后“安卓”用户启动客户端(假设本地版本号均低于1.0.0.9),向服务端发起版本号查询请求;
步骤12:服务端将请求信息记录到“查询请求表”中,同时在“版本配置表”中读取“安卓”对应所有记录中,排序后最新版本号为1.0.0.9,该记录对应的isValid为1,isRead为Yes,并获取升级包地址。
步骤13:根据程序规则,向客户端-识别模块返回升级标志0(即前端向用户显示“强制升级”消息框)以及升级包地址,前端向用户显示“强制升级”消息框;
步骤14:用户点击“立即升级”,连接升级包地址完成升级,将本地客户端升级至1.0.0.9。
本公开实施例提供的客户端软件的升级方法,通过第一标识和第二标识,对是否上传升级包进行判断,保证在最新升级包地址下存在升级包时,升级记录才会生效,解决了最新升级包地址下是否存在升级包和升级记录生效的分离问题,以保证客户端收到第一升级标志的同时能正常进行升级操作,同时在升级包不存在的情况下,仅第一个客户访问时会去路径下实际进行判断,第2个及之后客户无需与文件系统交互进行判断,避免了升级失败的情况出现,显著降低了系统开销,提高了用户体验。
基于上述客户端软件的升级方法,本公开还提供了一种客户端软件的升级装置。以下将结合图6对该装置进行详细描述。
图6示意性示出了根据本公开实施例的客户端软件的升级装置的结构框图。
如图6所示,该实施例的客户端软件的升级装置600包括接收模块610、读取模块620、判断模块630、比较模块640以及发送模块650。
接收模块610,用于接收客户端发送的查询请求,所述查询请求包括客户端软件类型和客户端软件版本号;在一实施例中,接收模块610可以用于执行前文描述的操作S210,在此不再赘述。
读取模块620,用于响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识,所述第一标识用于表示所述升级记录是否已读取,所述第二标识用于表示所述升级记录是否已生效;在一实施例中,读取模块620可以用于执行前文描述的操作S220,在此不再赘述。
判断模块630,用于判断所述第一标识和所述第二标识的状态;在一实施例中,判断模块630可以用于执行前文描述的操作S230,在此不再赘述。
比较模块640,用于当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号,以确定客户端软件版本和最新升级包版本的新旧关系;在一实施例中,比较模块640可以用于执行前文描述的操作S240,在此不再赘述。
发送模块650,用于当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。在一实施例中,发送模块650可以用于执行前文描述的操作S250,在此不再赘述。
根据本公开的实施例,所述装置还包括第二升级模块,所述第二升级模块用于当所述第二标识的状态表明所述升级记录未生效时,向所述客户端发送第二升级标志。
根据本公开的实施例,所述装置还包括:首次升级模块,所述首次升级模块用于当所述第一标识的状态表明所述升级记录未读取时,确定所述查询请求为针对所述升级记录的首次升级请求;以及响应于所述首次升级请求,将所述第一标识的状态从未读取状态更改为已读取状态,其中,所述第一标识的未读取状态表明所述升级记录未读取,所述第一标识的已读取状态表明所述升级记录已读取。
根据本公开的实施例,所述首次升级模块还包括第一更改模块,所述第一更改模块用于响应于所述首次升级请求,确定所述最新升级包地址下是否存在升级包;以及当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态,其中,所述第二标识的无效状态表明所述升级记录未生效,所述第二标识的有效状态表明所述升级记录已生效。
根据本公开的实施例,所述装置还包括第三升级模块,所述第三升级模块用于当所述第一标识的状态表明所述升级记录已读取时,确定所述查询请求为针对所述升级记录的非首次升级请求;以及响应于所述非首次升级请求,直接判断所述第二标识的状态。
图7示意性示出了根据本公开实施例的客户端软件的升级装置的轮询模块的结构框图。
如图7所示,本公开实施例的客户端软件的升级装置600还包括轮询模块710,所述轮询模块710用于当所述第二标识的状态表明所述升级记录未生效时,执行轮询操作,所述执行轮询操作的步骤包括:确定所述最新升级包地址下是否存在升级包;和当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态。
根据本公开的实施例,所述轮询模块还包括通知发送模块,所述通知模块用于当所述最新升级包地址下不存在升级包时,发送通知。
根据本公开的实施例,所述通知发送模块还包括通知生成模块,所述通知生成模块用于确定预设轮询周期和预设读取次数阈值;获取在一个所述预设轮询周期内,从所述服务端读取与所述客户端软件类型对应的升级记录的读取次数;比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型;以及基于所述通知类型,发送通知。
根据本公开的实施例,所述通知生成模块包括第一通知模块,所述第一通知模块用于当所述读取次数大于等于预设读取次数阈值时,确定通知类型为第一类型。
根据本公开的实施例,所述通知生成模块还包括第二通知模块,所述第二通知模块用于当所述读取次数小于预设读取次数阈值时,确定通知类型为第二类型。
根据本公开的实施例,所述轮询模块还包括修改模块,所述修改模块用于当发送通知后,将预设轮询周期设置为前一个预设轮询周期的一半,将预设读取次数阈值设置为前一个预设读取次数阈值的一半,重复执行所述轮询操作,直至所述最新升级包地址下存在升级包。
根据本公开的实施例,接收模块610、读取模块620、判断模块630、比较模块640、发送模块650以及轮询模块710和/或其子模块中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,接收模块610、读取模块620、判断模块630、比较模块640、发送模块650以及轮询模块710和/或其子模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块610、读取模块620、判断模块630、比较模块640、发送模块650以及轮询模块710和/或其子模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现客户端软件的升级方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例的方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (15)
1.一种客户端软件的升级方法,应用于服务端,所述服务端与客户端通信连接,其特征在于,所述方法包括:
接收客户端发送的查询请求,所述查询请求包括客户端软件类型和客户端软件版本号;
响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识,所述第一标识用于表示所述升级记录是否已读取,所述第二标识用于表示所述升级记录是否已生效;
判断所述第一标识和所述第二标识的状态;
当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号,以确定客户端软件版本和最新升级包版本的新旧关系;以及
当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第二标识的状态表明所述升级记录未生效时,向所述客户端发送第二升级标志。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一标识的状态表明所述升级记录未读取时,确定所述查询请求为针对所述升级记录的首次升级请求;以及
响应于所述首次升级请求,将所述第一标识的状态从未读取状态更改为已读取状态,其中,所述第一标识的未读取状态表明所述升级记录未读取,所述第一标识的已读取状态表明所述升级记录已读取。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述首次升级请求,确定所述最新升级包地址下是否存在升级包;以及
当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态,其中,所述第二标识的无效状态表明所述升级记录未生效,所述第二标识的有效状态表明所述升级记录已生效。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一标识的状态表明所述升级记录已读取时,确定所述查询请求为针对所述升级记录的非首次升级请求;以及
响应于所述非首次升级请求,直接判断所述第二标识的状态。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第二标识的状态表明所述升级记录未生效时,执行轮询操作,所述执行轮询操作的步骤包括:
确定所述最新升级包地址下是否存在升级包;和
当所述最新升级包地址下存在升级包时,将所述第二标识的状态从无效状态更改为有效状态。
7.根据权利要求6所述的方法,其特征在于,所述执行轮询操作的步骤还包括:
当所述最新升级包地址下不存在升级包时,发送通知。
8.根据权利要求7所述的方法,其特征在于,所述发送通知的步骤包括:
确定预设轮询周期和预设读取次数阈值;
获取在一个所述预设轮询周期内,从所述服务端读取与所述客户端软件类型对应的升级记录的读取次数;
比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型;以及
基于所述通知类型,发送通知。
9.根据权利要求8所述的方法,其特征在于,所述比较所述读取次数和所述预设读取次数阈值的大小关系,确定通知类型的步骤包括:
当所述读取次数大于等于预设读取次数阈值时,确定通知类型为第一类型。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述读取次数小于预设读取次数阈值时,确定通知类型为第二类型。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当发送通知后,将预设轮询周期设置为前一个预设轮询周期的一半,将预设读取次数阈值设置为前一个预设读取次数阈值的一半,重复执行所述轮询操作,直至所述最新升级包地址下存在升级包。
12.一种客户端软件的升级装置,应用于服务端,所述服务端与客户端通信连接,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的查询请求,所述查询请求包括客户端软件类型和客户端软件版本号;
读取模块,用于响应于所述查询请求,从所述服务端读取与所述客户端软件类型对应的升级记录,其中,所述升级记录包括最新升级包版本号、最新升级包地址、第一标识和第二标识,所述第一标识用于表示所述升级记录是否已读取,所述第二标识用于表示所述升级记录是否已生效;
判断模块,用于判断所述第一标识和所述第二标识的状态;
比较模块,用于当所述第一标识的状态表明所述升级记录已读取且所述第二标识的状态表明所述升级记录已生效时,比较所述客户端软件版本号和所述最新升级包版本号,以确定客户端软件版本和最新升级包版本的新旧关系;以及
发送模块,用于当所述最新升级包版本比所述客户端软件版本新时,向所述客户端发送第一升级标志和所述最新升级包地址。
13.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~11中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~11中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210531456.5A CN114928603B (zh) | 2022-05-16 | 2022-05-16 | 客户端软件的升级方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210531456.5A CN114928603B (zh) | 2022-05-16 | 2022-05-16 | 客户端软件的升级方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114928603A true CN114928603A (zh) | 2022-08-19 |
CN114928603B CN114928603B (zh) | 2024-01-30 |
Family
ID=82808407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210531456.5A Active CN114928603B (zh) | 2022-05-16 | 2022-05-16 | 客户端软件的升级方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114928603B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934141A (zh) * | 2022-12-30 | 2023-04-07 | 北京泰迪熊移动科技有限公司 | 一种软件的升级方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012025011A1 (zh) * | 2010-08-27 | 2012-03-01 | 腾讯科技(深圳)有限公司 | 软件升级系统及方法、计算机存储介质 |
CN105635277A (zh) * | 2015-12-30 | 2016-06-01 | 北京京东尚科信息技术有限公司 | 提供升级包的方法与装置以及升级客户端的方法与装置 |
CN106095505A (zh) * | 2016-06-13 | 2016-11-09 | 天脉聚源(北京)传媒科技有限公司 | 一种软件升级的方法及装置 |
CN110908681A (zh) * | 2018-09-18 | 2020-03-24 | 北京京东尚科信息技术有限公司 | 一种软件升级的方法和装置 |
CN112925551A (zh) * | 2021-02-08 | 2021-06-08 | 北京罗克维尔斯科技有限公司 | 对象升级方法、装置、设备和存储介质 |
-
2022
- 2022-05-16 CN CN202210531456.5A patent/CN114928603B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012025011A1 (zh) * | 2010-08-27 | 2012-03-01 | 腾讯科技(深圳)有限公司 | 软件升级系统及方法、计算机存储介质 |
CN105635277A (zh) * | 2015-12-30 | 2016-06-01 | 北京京东尚科信息技术有限公司 | 提供升级包的方法与装置以及升级客户端的方法与装置 |
CN106095505A (zh) * | 2016-06-13 | 2016-11-09 | 天脉聚源(北京)传媒科技有限公司 | 一种软件升级的方法及装置 |
CN110908681A (zh) * | 2018-09-18 | 2020-03-24 | 北京京东尚科信息技术有限公司 | 一种软件升级的方法和装置 |
CN112925551A (zh) * | 2021-02-08 | 2021-06-08 | 北京罗克维尔斯科技有限公司 | 对象升级方法、装置、设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934141A (zh) * | 2022-12-30 | 2023-04-07 | 北京泰迪熊移动科技有限公司 | 一种软件的升级方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114928603B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9984111B2 (en) | Process metadata triggers and events | |
US8875120B2 (en) | Methods and apparatus for providing software bug-fix notifications for networked computing systems | |
CN108804215B (zh) | 一种任务处理方法、装置以及电子设备 | |
CN114144761A (zh) | 发布系统、推送方法、应用设备、接收装置及服务管理设备 | |
CN114928603A (zh) | 客户端软件的升级方法、装置、电子设备和介质 | |
CN109299124B (zh) | 用于更新模型的方法和装置 | |
CN110716804A (zh) | 无用资源的自动删除方法、装置、存储介质及电子设备 | |
CN111880990A (zh) | 一种异常处理方法及装置 | |
US11558321B2 (en) | Integration of an email client with hosted applications | |
CN113112217B (zh) | 一种业务流程配置方法、装置、电子设备及计算机可读介质 | |
US20130046840A1 (en) | System and method for dynamically generating an email message | |
CN113986258A (zh) | 业务发布方法、装置、设备及存储介质 | |
CN112083945A (zh) | Npm安装包的更新提示方法、装置、电子设备及存储介质 | |
CN109960659B (zh) | 用于检测应用程序的方法和装置 | |
CN110048940A (zh) | 即时通信消息的发送方法、装置、服务器及可读存储介质 | |
CN117193990B (zh) | http接口的调度管理方法、装置、设备及存储介质 | |
US20220353224A1 (en) | Integration of client applications with hosted applications | |
US20230267098A1 (en) | Data blocking for application platforms | |
CN115840677A (zh) | 一种数据验证方法、装置、设备和存储介质 | |
CN114371979A (zh) | 容器资源监控方法、装置、设备、介质和程序产品 | |
CN114721740A (zh) | 消息触发方法、装置、设备及存储介质 | |
CN114816346A (zh) | 一种业务项目开发方法、装置、电子设备及存储介质 | |
CN116560692A (zh) | 服务资源更新方法、装置、设备及存储介质 | |
CN117112081A (zh) | Python脚本的调度管理方法、装置、设备及介质 | |
US20190188649A1 (en) | Fill-in notifications |
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 |