本申请涉及计算机领域,具体涉及一种软件升级方法、装置、计算机可读存储介质及计算机设备。
背景技术:
1、随着计算机技术的不断发展,物联网设备连接数和用户数每年都在高速增长,为了有更好的用户体验,厂商会对产品不断优化升级,这些升级都是通过远程空中下载技术(over the air,ota)实现。当某款产品进行大批量ota自动升级时(用户已授权允许自动升级),可能面临大量设备同时升级造成的平台压力大和升级耗时长的问题。
2、现有技术中,用户在应用程序上授权允许自动升级时,会给这个用户分配一个定时任务,例如每天凌晨2点执行任务去检测该用户的设备是否需要升级。当用户量达到百万、千万级时,会产生大量定时任务,并且任务集中执行造成高并发。对调度任务服务产生极大的压力和服务不稳定,然而下游具备高可用和高性能的ota服务在经过几个压力高峰后大部分时间相对空闲,造成资源浪费、压力分配不均衡和执行效率低等问题。
技术实现思路
1、本申请实施例提供一种软件升级方法及装置,可以避免服务器传输数据量较大的软件升级数据导致数据传输压力较大,执行效率低的问题,提高软件升级的升级效率。
2、为解决上述技术问题,本申请实施例提供以下技术方案:
3、一种软件升级方法,应用于服务器集群中的任一服务器,包括:
4、接收软件升级指令,所述软件升级指令携带有软件升级数据以及划分规则;
5、基于所述软件升级数据以及所述划分规则,控制所述服务器集群中的服务器从所述软件升级数据中划分出软件升级子数据;
6、当满足软件升级条件时,获取待升级的目标设备标识;
7、向所述目标设备标识对应的目标设备发送所述软件升级子数据。
8、一种软件升级装置,应用于服务器集群中的任一服务器,包括:
9、接收模块,用于接收软件升级指令,所述软件升级指令携带有软件升级数据以及划分规则;
10、划分模块,用于基于所述软件升级数据以及所述划分规则,控制所述服务器集群中的服务器从所述软件升级数据中划分出软件升级子数据;
11、获取模块,用于当满足软件升级条件时,获取待升级的目标设备标识;
12、发送模块,用于向所述目标设备标识对应的目标设备发送所述软件升级子数据。
13、在本申请实施例提供的软件升级装置中,所述划分规则包括为所述服务器配置的划分序号,划分模块,包括:
14、第一获取子模块,用于获取所述服务器集群中的服务器数量;
15、第一确定子模块,用于基于所述划分序号以及所述服务器数量,确定软件升级数据的划分起始位置以及划分终止位置;
16、第二确定子模块,用于将所述软件升级数据中自所述划分起始位置至所述划分终止位置之间的数据,确定为软件升级子数据,并从所述软件升级数据中划分所述出软件升级子数据。
17、在本申请实施例提供的软件升级装置中,第二确定子模块,包括:
18、第一计算单元,用于计算所述划分序号与1的差值,得到第一计算结果;
19、第二计算单元,用于计算所述第一计算结果与所述服务器数量的比值,得到第二计算结果;
20、第三计算单元,用于计算所述划分序号与所述服务器数量的比值,得到第三计算结果;
21、第一确定单元,用于基于所述第二计算结果、所述第三计算结果以及所述软件升级数据的数据数量,确定软件升级数据的划分起始位置以及划分终止位置。
22、在本申请实施例提供的软件升级装置中,确定单元,用于:
23、计算所述第二计算结果与所述软件升级数据的数据数量的乘积,得到第一数据数量,将所述第一数据数量在所述软件升级数据中的位置确定为划分起始位置;
24、计算所述第三计算结果与所述软件升级数据的数据数量的乘积,得到第二数据数量,将所述第二数据数量在所述软件升级数据中的位置确定为划分终止位置。
25、在本申请实施例提供的软件升级装置中,划分规则包括当前划分进度,划分模块,包括:
26、第二获取子模块,用于获取所述服务器集群中的服务器数量;
27、第一计算子模块,用于计算1与所述服务器数量的比值,得到划分占比;
28、第三确定子模块,用于基于所述划分占比,所述软件升级数据的数据数量以及所述划分进度,确定软件升级数据的划分起始位置以及划分终止位置;
29、第四确定子模块,用于将所述软件升级数据中自所述划分起始位置至所述划分终止位置之间的数据,确定为软件升级子数据,并从所述软件升级数据中划分所述出软件升级子数据。
30、在本申请实施例提供的软件升级装置中,第四确定子模块,包括:
31、第四计算单元,用于计算所述软件升级数据的数据数量与所述当前划分进度的乘积,确定第一目标数据数量;
32、第二确定单元,用于将所述软件升级数据中所述第一目标数据数量的位置确定为划分起始位置;
33、第五计算单元,用于计算所述软件升级数据的数据数量与所述划分占比的乘积,确定第二目标数据数量;
34、第六计算单元,用于将所述软件升级数据中自所述第一目标数据数量的位置起,达到所述第二目标数据数量的位置确定为划分终止位置。
35、在本申请实施例提供的软件升级装置中,获取模块,包括:
36、第三获取子模块,用于获取所述目标设备标识的标识数量;
37、分配子模块,用于基于所述标识数量以及线程数量,将多个所述目标设备标识平均分配至每一线程;
38、发送模块,包括:
39、发送子模块,用于控制每一线程向分配的目标设备标识对应的目标设备发送所述软件升级子数据。
40、一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述软件升级方法中的步骤。
41、一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述软件升级方法中的步骤。
42、本申请实施例通过接收软件升级指令,所述软件升级指令携带有软件升级数据以及划分规则;基于所述软件升级数据以及所述划分规则,控制所述服务器集群中的服务器从所述软件升级数据中划分出软件升级子数据;当满足软件升级条件时,获取待升级的目标设备标识;向所述目标设备标识对应的目标设备发送所述软件升级子数据。以此,可以基于软件升级数据以及所述划分规则确定出服务器集群中每一服务器所负责的软件升级子数据,从而避免服务器传输数据量较大的软件升级数据导致数据传输压力较大,执行效率低的问题,提高软件升级的升级效率。
1.一种软件升级方法,其特征在于,应用于服务器集群中的任一服务器,包括:
2.根据权利要求1所述的软件升级方法,其特征在于,所述划分规则包括为所述服务器配置的划分序号,所述基于所述软件升级数据以及所述划分规则,控制所述服务器集群中的服务器从所述软件升级数据中划分出软件升级子数据的步骤,包括:
3.根据权利要求2所述的软件升级方法,其特征在于,所述基于所述划分序号以及所述服务器数量,确定软件升级数据的划分起始位置以及划分终止位置的步骤,包括:
4.根据权利要求3所述的软件升级方法,其特征在于,所述基于所述第二计算结果、所述第三计算结果以及所述软件升级数据,确定软件升级数据的划分起始位置以及划分终止位置的步骤,包括:
5.根据权利要求1所述的软件升级方法,其特征在于,所述划分规则包括当前划分进度,所述基于所述软件升级数据以及所述划分规则,控制所述服务器集群中的服务器从所述软件升级数据中划分出软件升级子数据的步骤,包括:
6.根据权利要求5所述的软件升级方法,其特征在于,所述基于所述划分占比,所述软件升级数据的数据数量以及所述划分进度,确定软件升级数据的划分起始位置以及划分终止位置的步骤,包括:
7.根据权利要求1-6任一项所述的软件升级方法,其特征在于,在所述当满足软件升级条件时,获取待升级的目标设备标识的步骤之后,还包括:
8.一种软件升级装置,其特征在于,应用于服务器集群中的任一服务器,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的软件升级方法中的步骤。
10.一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的软件升级方法中的步骤。