软件升级方法及装置的制造方法
【技术领域】
[0001]本公开涉及软件开发技术领域,尤其涉及软件升级方法及装置。
【背景技术】
[0002]对于一款软件来讲,例如一款app甚至是一款操作系统,当软件的新版本开发出来之后,如果直接推送给所有用户进行升级,那么一旦有潜在的严重Bug就可能会造成重大损失。为了避免出现这种情况,可以将升级过程分为前期小范围试用和后期大规模升级两个阶段,即可以先让小部分用户进行升级试用,当得到这部分用户反馈之后,再对软件新版本进行优化,直到没有问题后再在后期让所有用户进行升级。这种软件升级方式可以称为“灰度升级”。通过灰度升级,可以在小范围内测试软件新版本的情况,检验新版本的稳定性,避免潜在的严重Bug造成不可控的不良影响。
【发明内容】
[0003]为克服相关技术中存在的问题,本公开提供软件升级方法及装置,以提高灰度升级时的效率。
[0004]根据本公开实施例的第一方面,提供一种软件升级方法,所述方法包括:
[0005]获取软件上线记录原始集合,所述原始集合中每条上线记录包括:使用所述软件的用户标识及上线时间;
[0006]从所述原始集合中滤除上线时间未在预设时间段内的上线记录以得到第一集合;
[0007]统计各个用户标识在所述第一集合中出现的次数;
[0008]通过用所述次数除以所述预设时间段的时长,得到每个所述用户标识对应的在线值;
[0009]按照所述在线值从大到小对用户标识进行排序后,根据所述排序推送软件升级信息。
[0010]这样,通过在线值挑选出灰度升级时适合进行前期小范围试用的目标用户,可以使前期小范围试用更加高效,从而提高灰度升级的效率。
[0011]可选的,所述根据所述排序推送软件升级信息,包括:
[0012]从所述排序的前N个用户中随机选出M个用户作为目标用户,其中M和N均为自然数;
[0013]向所述目标用户推送所述软件升级信息。
[0014]这样,通过随机挑选可避免每次灰度升级时用户的重复性。
[0015]可选的,所述向所述目标用户推送所述软件升级信息,包括:
[0016]直接向每个所述目标用户推送所述软件升级信息;
[0017]或者,
[0018]当收到升级请求时,判断所述升级请求携带的用户标识是否属于所述目标用户,如果属于所述目标用户,则向所述升级请求的发送方推送所述软件升级信息。
[0019]这样,直接推送软件升级信息可以让目标用户的软件更快的得到升级,而应请求再推送软件升级信息则可以使目标用户有更大的自主权。
[0020]可选的,所述上线记录还包括软件版本时,统计各个用户标识在所述第一集合中出现的次数之前,所述方法还包括:
[0021]从所述第一集合中滤除软件版本不符合预设条件的上线记录以得到第二集合;
[0022]将所述第二集合重新作为所述第一集合。
[0023]这样,进一步对第一集合进行过滤可以筛选出更加适合灰度升级的用户。
[0024]可选的,获取软件上线记录原始集合之前,所述方法还包括:
[0025]在各个用户每次使用所述软件上线时生成所述上线记录,以组成所述软件上线记录原始集合。
[0026]根据本公开实施例的第二方面,提供一种软件升级装置,所述装置包括:
[0027]记录获取模块,用于获取软件上线记录原始集合,所述原始集合中每条上线记录包括:使用所述软件的用户标识及上线时间;
[0028]记录筛选模块,用于从记录获取模块获取的所述原始集合中滤除上线时间未在预设时间段内的上线记录以得到第二集合;
[0029]统计计算模块,用于在所述记录筛选模块处理后得到的所述第二集合中统计各个用户标识出现的次数,通过用所述次数除以所述预设时间段的时长,得到每个所述用户标识对应的在线值,按照所述在线值从大到小对用户标识进行排序;
[0030]信息推送模块,用于根据所述统计计算模块得到的所述排序推送软件升级信息。
[0031]这样,通过在线值挑选出灰度升级时适合进行前期小范围试用的目标用户,可以使前期小范围试用更加高效,从而提高灰度升级的效率。
[0032]可选的,所述信息推送模块包括:
[0033]目标用户确定子模块,用于从所述排序的前N个用户中随机选出M个用户作为目标用户,其中M和N均为自然数;
[0034]信息推送子模块,用于向所述目标用户推送所述软件升级信息。
[0035]这样,通过随机挑选可避免每次灰度升级时用户的重复性。
[0036]可选的,所述信息推送子模块用于:
[0037]直接向每个所述目标用户推送所述软件升级信息;或者,当收到升级请求时,判断所述升级请求携带的用户标识是否属于所述目标用户,如果属于所述目标用户,则向所述升级请求的发送方推送所述软件升级信息。
[0038]这样,直接推送软件升级信息可以让目标用户的软件更快的得到升级,而应请求再推送软件升级信息则可以使目标用户有更大的自主权。
[0039]可选的,所述上线记录还包括软件版本时,所述记录筛选模块还用于:
[0040]从所述第一集合中滤除软件版本不符合预设条件的上线记录以得到第二集合;
[0041]将所述第二集合重新作为所述第一集合。
[0042]这样,进一步对第一集合进行过滤可以筛选出更加适合灰度升级的用户。
[0043]根据本公开实施例的第三方面,提供一种软件升级装置,包括:
[0044]处理器;
[0045]用于存储处理器可执行指令的存储器;
[0046]其中,所述处理器被配置为:
[0047]获取软件上线记录原始集合,所述原始集合中每条上线记录包括:使用所述软件的用户标识及上线时间;
[0048]从所述原始集合中滤除上线时间未在预设时间段内的上线记录以得到第一集合;
[0049]统计各个用户标识在所述第一集合中出现的次数;
[0050]通过用所述次数除以所述预设时间段的时长,得到每个所述用户标识对应的在线值;
[0051]按照所述在线值从大到小对用户标识进行排序后,根据所述排序推送软件升级信息。
[0052]这样,通过在线值挑选出灰度升级时适合进行前期小范围试用的目标用户,可以使前期小范围试用更加高效,从而提高灰度升级的效率。
[0053]本公开的实施例提供的技术方案可以包括以下有益效果:
[0054]在对软件进行灰度升级时,本公开实施例的方案可以通过在线值对众多用户进行排序,然后根据排序推送软件升级信息。因为通常在线值高的用户上线更积极,也就更有几率反馈软件新版本的缺陷,所以通过在线值挑选出灰度升级时适合进行前期小范围试用的目标用户,可以使前期小范围试用更加高效,从而提高灰度升级的效率。
[0055]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0056]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0057]图1是根据一示例性实施例示出的一种软件升级方法的流程图;
[0058]图2是根据一示例性实施例示出的一种软件升级方法的流程图;
[0059]图3是根据一示例性实施例示出的服务器推送软件升级信息的场景示意图;
[0060]图4是根据一示例性实施例示出的用户收到软件升级提示时的界面示意图;
[0061]图5是根据一示例性实施例示出的服务器推送软件升级信息的场景示意图;
[0062]图6是根据一示例性实施例示出的一种软件升级方法的流程图;
[0063]图7是根据一示例性实施例示出的一种软件升级方法的流程图;
[0064]图8是根据一示例性实施例示出的一种软件升级装置的框图;
[0065]图9是根据一示例性实施例示出的一种软件升级装置的框图;
[0066]图10是根据一示例性实施例示出的一种用于软件升级的装置的框图。
【具体实施方式】
[0067]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0068]图1