CN111443934B - 灰度用户确定方法、装置、设备及存储介质 - Google Patents

灰度用户确定方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111443934B
CN111443934B CN202010242490.1A CN202010242490A CN111443934B CN 111443934 B CN111443934 B CN 111443934B CN 202010242490 A CN202010242490 A CN 202010242490A CN 111443934 B CN111443934 B CN 111443934B
Authority
CN
China
Prior art keywords
user
preset
gray scale
current
value
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.)
Active
Application number
CN202010242490.1A
Other languages
English (en)
Other versions
CN111443934A (zh
Inventor
周桂镔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bigo Technology Pte Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN202010242490.1A priority Critical patent/CN111443934B/zh
Publication of CN111443934A publication Critical patent/CN111443934A/zh
Application granted granted Critical
Publication of CN111443934B publication Critical patent/CN111443934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明实施例公开了灰度用户确定方法、装置、设备及存储介质。其中,该方法包括:检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取第一用户对应的用户标识信息;根据用户标识信息查询第一程序包对应的预设灰度表,其中,预设灰度表基于第一程序包对应的程序标识信息生成;在查询结果满足预设要求时,确定第一用户为灰度用户。本发明实施例提供的技术方案,预设灰度表是稳定的,当出现意外情况时,不会导致灰度用户群体发生变化,且能够保证对于不同的程序包生成的预设灰度表满足随机性要求,使不同程序包的灰度用户群体足够分散,进而达到更加合理地确定灰度用户的技术效果。

Description

灰度用户确定方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及灰度用户确定方法、装置、设备及存储介质。
背景技术
随着终端技术快速发展,各种终端成为人们生活和工作不可缺少的一部分。终端中可以安装有各种各样的应用程序,用于拓展终端的功能,且安装的应用程序需要经常更新,增加新的功能或修复问题。但在应用程序的升级过程中,通常会出现新旧版本的应用程序不兼容、新版本的应用程序不稳定、或者大量用户同时升级造成的系统崩溃等问题。为了解决上述问题,灰度发布得到了广泛的应用。
灰度发布又称体验式发布或金丝雀发布,是指在黑与白之间,能够平滑过渡的一种发布方式。灰度发布的主要思想就是把影响集中到一个点,然后再发散到一个面,通过灰度发布可以对某些目标功能进行测试,从而来控制测试功能的稳定性以及终端功能数据,来达到产品上的目标。
在进行灰度发布时,通常选取部分用户作为新版本应用程序的程序包的发布对象,被选取的用户称为灰度用户。然而,现有技术中确定灰度用户的方案仍不够完善,需要改进。
发明内容
本发明实施例提供了灰度用户确定方法、装置、设备及存储介质,可以优化现有的灰度用户确定方案。
第一方面,本发明实施例提供了一种灰度用户确定方法,该方法包括:
检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取所述第一用户对应的用户标识信息;
根据所述用户标识信息查询所述第一程序包对应的预设灰度表,其中,所述预设灰度表基于所述第一程序包对应的程序标识信息生成;
在查询结果满足预设要求时,确定所述第一用户为灰度用户。
第二方面,本发明实施例提供了一种灰度用户确定装置,该装置包括:
用户标识信息获取模块,用于检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取所述第一用户对应的用户标识信息;
预设灰度表查询模块,用于根据所述用户标识信息查询所述第一程序包对应的预设灰度表,其中,所述预设灰度表基于所述第一程序包对应的程序标识信息生成;
灰度用户确定模块,用于在查询结果满足预设要求时,确定所述第一用户为灰度用户。
第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的灰度用户确定方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的灰度用户确定方法。
本发明实施例中提供的灰度用户确定方案,检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取第一用户对应的用户标识信息,根据用户标识信息查询第一程序包对应的预设灰度表,其中,预设灰度表基于第一程序包对应的程序标识信息生成,在查询结果满足预设要求时,确定第一用户为灰度用户。通过采用上述技术方案,用于确定用户是否为灰度用户的预设灰度表基于程序包对应的程序标识信息生成,而对于一个程序包来说,其对应的程序标识信息是唯一的,因此,预设灰度表是稳定的,当出现意外情况时,不会导致灰度用户群体发生变化,且能够保证对于不同的程序包生成的预设灰度表满足随机性要求,使不同程序包的灰度用户群体足够分散,进而达到更加合理地确定灰度用户的技术效果。
附图说明
图1为本发明实施例提供的一种灰度用户确定方法的流程示意图;
图2为本发明实施例提供的又一种灰度用户确定方法的流程示意图;
图3为本发明实施例提供的一种灰度用户确定装置的结构框图;
图4为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
图1为本发明实施例提供的一种灰度用户确定方法的流程示意图,该方法可以由灰度用户确定装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中。如图1所示,该方法包括:
步骤101、检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取所述第一用户对应的用户标识信息。
示例性的,计算机设备可以是第一程序包对应的应用程序的后台设备,如负责程序包发布或下发的服务器等。程序包一般指软件产品的程序和目录的合集,例如可以包括动态连接库或flutter等技术开发的业务代码文件集合等。第一程序包可以是任意一个有灰度发布需求的程序包,又称灰度包,具体类型不做限定。对于一个应用程序来说,开发者经常需要根据新增功能或修复问题等需求开发新版本,第一程序包可以是某个应用程序的新版本对应的灰度包。第一用户可以是预设用户集合中的任意一个用户,预设应用集合可以包含任意一个满足预设筛选条件的用户,预设筛选条件例如可以包括正在使用第一程序包对应的应用程序的用户,还可以包括指定年龄、指定性别或指定所地区等指定用户属性的条件等。
示例性的,灰度确定事件的触发条件可以根据实际需求设置。例如,检测到第一程序包首次发布时,可认为针对第一程序包的用户的灰度确定事件被触发,可以针对预设用户集合中的每个用户依次或并行触发相应的灰度确定事件,也即,预设用户集合中的每个用户都可以成为第一用户;又如,当第一程序包发布后,检测到第一程序包对应的灰度比例发生变化时,可认为针对第一程序包的用户的灰度确定事件被触发。其中,灰度比例可表示允许安装第一程序包的用户占所有用户的比例,也即灰度用户占所有用户的比例,所有用户可以指预设用户集合中的所有用户。灰度包发布后,灰度比例可能需要随着时间的推移不断调整。例如,若经过一定时间后,第一程序包未发现问题,灰度比例可以上调,此时,可以针对预设用户集合中的除已被确定为灰度用户之外的每个用户依次或并行触发相应的灰度确定事件,也即,第一用户可以为预设用户集合中当前灰度用户之外的任意一个用户;若经过一定时间后,第一程序包发现问题,需要进行回收,灰度比例可以下调,此时,可以针对预设用户集合中的已被确定为灰度用户的每个用户依次或并行触发相应的灰度确定事件,也即,第一用户可以为预设用户集合中当前灰度用户中的任意一个用户。再如,可以由用户主动发起灰度确定请求,在检测到第一用户发起的灰度确定请求时,可认为针对第一程序包的第一用户的灰度确定事件被触发。
示例性的,用户标识信息可以用于唯一标识用户的身份信息,可以用uid表示。具体的,用户标识信息可以根据用户在第一程序包对应的应用程序中的账号确定,可以根据用户的身份证信息、手机号或手机卡信息等确定,还可以根据用户所使用的客户端设备的设备标识确定等等,本发明实施例不做具体限定。具体的获取方式可以根据用户标识信息的具体类型而定。
步骤102、根据所述用户标识信息查询所述第一程序包对应的预设灰度表,其中,所述预设灰度表基于所述第一程序包对应的程序标识信息生成。
现有技术中的灰度发布方案中,生成一个随机数组作为灰度表,然后将用户uid做哈希处理,根据哈希值在灰度表的落点确定是否为灰度用户。现有方案存在以下三个缺点:第一,后台服务重启(如遇到机器异常等问题)之后重新生成随机数组,作为新的灰度表,新的灰度表与原灰度表不同,基于新的灰度表继续确定灰度用户,会导致灰度群体发生变化,设定的灰度比例与实际效果不符;第二,由于灰度表是随机生成的,服务的部署只能是单实例,可能会由于服务的负载过高而产生异常,使得第一个缺点的问题更加严重;第三,由于灰度表是随机生成的,不够稳定,灰度比例需要调整时,可能会影响已经灰度的用户,若存在灰度回收需求,也难以控制回收比例,因此现有技术中并不存在支持灰度包回收功能。
本发明实施例所采用的预设灰度表基于第一程序包对应的程序标识信息生成,程序标识信息用于唯一标识第一程序包的身份。示例性的,所述程序标识信息包括所述第一程序包的包名和/或版本信息。因此,对于第一程序包来说,根据其对应的唯一的程序标识信息生成的预设灰度表是稳定的,可以很好地解决现有方案中的上述技术问题。预设灰度表的具体生成方式以及预设灰度表的具体形式本发明实施例不做限定。例如,预设灰度表可以是根据程序标识信息生成数组,不同用户标识信息可以在数组中对应不同的数值,不同的数值可以对应不同的比例值。
步骤103、在查询结果满足预设要求时,确定所述第一用户为灰度用户。
示例性的,预设要求可以根据实际情况进行设置。例如,可以根据查询到的在预设灰度表中对应的数值来确定相应的比例值,若该比例值处于灰度比例内,则可认为第一用户为灰度用户。
本发明实施例中提供的灰度用户确定方法,检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取第一用户对应的用户标识信息,根据用户标识信息查询第一程序包对应的预设灰度表,其中,预设灰度表基于第一程序包对应的程序标识信息生成,在查询结果满足预设要求时,确定第一用户为灰度用户。通过采用上述技术方案,用于确定用户是否为灰度用户的预设灰度表基于程序包对应的程序标识信息生成,而对于一个程序包来说,其对应的程序标识信息是唯一的,因此,预设灰度表是稳定的,当出现意外情况时,不会导致灰度用户群体发生变化,且能够保证对于不同的程序包生成的预设灰度表满足随机性要求,使不同程序包的灰度用户群体足够分散,进而达到更加合理地确定灰度用户的技术效果。
在一些实施例中,根据所述用户标识信息查询所述第一程序包对应的预设灰度表,包括:根据所述用户标识信息确定对应的第一元素索引;以所述第一元素索引查询所述第一程序包对应的预设灰度表,得到所述用户标识信息在所述预设灰度表中对应的第一元素值。这样设置的好处在于,通过元素索引建立用户标识信息和元素值之间的关联关系,对于不同的程序包来说,元素索引的设置可以是一致的,同一个用户对于不同的预设灰度表来说,对应的元素索引就是一致的,而元素索引对应的元素值是与程序标识信息相关的,因此,对于不同的程序包来说,同一个用户可能是灰度用户,也可能不是灰度用户,从而可以保证灰度用户的随机性。
在一些实施例中,在查询结果满足预设要求时,确定所述第一用户为灰度用户,包括:当所述第一元素值对应的第一比例值处于所述第一程序包对应的预设灰度比例范围内时,确定所述第一用户为灰度用户。这样设置的好处在于,可以快速准确地确定第一用户是否为灰度用户。例如,预设灰度比例范围为80%以内,若第一元素值对应的第一比例值为70%,则处于预设灰度比例范围内,第一用户为灰度用户,也即第一用户在灰度群体内。
在一些实施例中,所述用户标识信息为正整数;所述根据所述用户标识信息确定对应的第一元素索引,包括:基于预设数值对所述用户标识信息进行取余操作,将所得数值作为对应的第一元素索引,其中,所述预设数值与所述预设灰度表中的元素总数相同。这样设置的好处在于,可以快速准确地确定用户标识信息对应的元素索引。示例性的,取余操作在程序设计领域又称取模操作。假设预设灰度表中的元素总数为100,那么预设数值为100,元素索引可以是0至99,假设用户标识信息为123456,那么基于100进行取余操作,所得数值则为56,对应的元素索引为56。
在一些实施例中,所述预设灰度表中的元素总数与所述预设灰度比例范围的精度相关。这样设置的好处在于,可以便于确定元素值与比例值的对应关系,提高确定灰度用户的效率。例如预设灰度比例范围的精度为百分之一,则预设灰度表中的元素总数可以是100;预设灰度比例范围的精度为千分之一,则预设灰度表中的元素总数可以是1000。
在一些实施例中,所述预设灰度表通过如下方式得到:构建参照表和灰度表,所述参照表中的元素总数与所述灰度表中的元素总数相同,所述参照表中的元素值为正整数,并从0开始依次递增;将所述程序标识信息转换为正整数,得到对应的基准数值;基于所述基准数值和预设更新规则,根据所述参照表中的元素值更新所述灰度表中的元素值,得到预设灰度表。这样设置的好处在于,参照表中的元素各不相同,基于程序标识信息确定的基准数值和预设更新规则根据参照表中的元素值更新灰度表中的元素值,得到预设灰度表,实现预设灰度表中数值的随机性以及与程序包的对应性。
在一些实施例中,所述将所述程序标识信息转换为正整数,包括:利用预设哈希算法将所述程序标识信息转换为正整数。这样设置的好处在于,可以保证程序标识信息的唯一性。可选的,所述预设哈希算法为BKDR算法。其中,BKDR算法是由Brian Kernighan和Dennis Ritchie两人提出的,因此根据两人的名字命名,该算法是一种简单快捷的哈希(hash)算法,经发明人验证,在本发明实施例方案中能够取得较为理想的效果,满足快速准确地将程序标识信息转换为正整数的需求。
在一些实施例中,所述基于所述基准数值和预设更新规则,将所述灰度表中的元素值替换为所述参照表中的元素值,包括:
采用预设次数的如下循环操作更新所述灰度表中的元素值:针对当前基准数值取最后N位数字,作为当前参考值,并将所述当前基准数值左移一位,得到新的基准数值,其中,在当前参考值与当前基准数值相同时,将所述基准数值作为新的基准数值;基于当前参照表包含的元素数量对所述当前参考值进行取余操作,将所得数值作为在当前参照表中对应的当前目标元素索引,将所述当前目标元素索引对应的当前目标元素值确定为当前灰度表中的当前待更新元素索引,将所述当前待更新元素索引对应的当前元素值替换为当前循环次数,得到新的灰度表,将所述当前目标元素值从所述当前参照表中删除,得到新的参照表;其中,所述预设次数和所述预设数值与所述灰度表的元素总数相同,均为10的N次方。其中,首次循环操作时,当前基准数值为所述基准数值,当前参照表为所述参照表,当前灰度表为所述灰度表,预设次数的循环操作结束后,得到的当前灰度表即为预设灰度表。这样设置的好处在于,能够快速合理地实现预设灰度表中数值的随机性以及与程序包的对应性。
在一些实施例中,所述在确定所述第一用户为灰度用户之后,还包括:向所述灰度用户对应的客户端下发所述第一程序包。这样设置的好处在于,当第一用户被确定为灰度用户后,说明允许第一用户安装第一程序包,可适用于第一程序包首次发布的情况,或灰度比例上调等情况。可选的,向所述灰度用户对应的客户端下发所述第一程序包,可包括:检测所述灰度用户对应的客户端是否存储有第一程序包或已安装第一程序包,若否,则向所述灰度用户对应的客户端下发所述第一程序包。这样设置的好处在于,防止第一程序包的重复下发。
在一些实施例中,还包括:在所述查询结果不满足所述预设要求时,确定所述第一用户不是灰度用户;若检测到所述第一用户对应的客户端存储有或已安装所述第一程序包,则通知所述客户端删除所述第一程序包。这样设置的好处在于,若确定第一用户当前不是灰度用户,且已存储或安装第一程序包,则通知客户端对第一程序包进行删除或卸载,可适用于灰度回收等情况,或对第一程序包的误下发进行修正等情况。灰度回收的实现主要依靠的是本发明实施例技术方案产生的稳定的预设灰度表,调整灰度比例时,落入灰度比例的用户也是稳定的。只要与客户端的协议约定,如果服务器发现客户端拥有某个程序包的资源但却不在灰度表的灰度范围内,可通过协议告知客户端删除本地的程序包。因此,本发明实施例的方案相比于现有技术方案来说,支持灰度回收和灰度纠错功能,使得灰度发布方案更加完善。
图2为本发明实施例提供的又一种灰度用户确定方法的流程示意图,在上述各可选实施例基础上进行优化,增加了生成预设灰度表的相关步骤。
可选的,该方法包括:
步骤201、获取第一程序包的程序标识信息,并采用预设哈希算法将程序标识信息转换为正整数,得到对应的基准数值。
示例性的,程序标识信息包括程序包的包名和版本,可具体表现为一个唯一的字符串,采用BKDR算法将该字符串hash成一个整数seed,即基准数值。
步骤202、构建参照表和灰度表,其中,参照表中的元素总数与灰度表中的元素总数相同,参照表中的元素值为正整数,并从0开始依次递增。
可选的,步骤201和步骤202可互换。
其中,灰度表中的元素总数与第一程序包对应的预设灰度比例范围的精度相关。例如,预设灰度比例范围的精度为百分之一,则预设灰度表中的元素总数可以是100,也即参照表中的元素总数与灰度表中的元素总数为100。
示例性的,构建的参照表(initial_table)可以是一个大小为100的顺序数组,如表1:
表1、参照表
Figure GDA0004141549490000111
其中,下标值(index)又称为元素索引,可见,参照表中的元素索引和对应的元素值相同。
示例性的,构建的灰度表(gray_table)也可以是一个大小为100的顺序数组,如表2:
表2、灰度表
Figure GDA0004141549490000112
其中,由于灰度表中的每个元素值都需要更新,因此,初始的灰度表中的元素值可以均为0,但也可以是其他值,本发明实施例不做限定。
步骤203、基于基准数值和预设更新规则,根据参照表中的元素值更新灰度表中的元素值,得到第一程序包对应的预设灰度表。
具体的,本步骤可包括采用预设次数的如下循环操作更新灰度表中的元素值:
针对当前基准数值取最后N位数字,作为当前参考值,并将所述当前基准数值左移一位,得到新的基准数值,其中,在当前参考值与当前基准数值相同时,将所述基准数值作为新的基准数值;基于当前参照表包含的元素数量对所述当前参考值进行取余操作,将所得数值作为在当前参照表中对应的当前目标元素索引,将所述当前目标元素索引对应的当前目标元素值确定为当前灰度表中的当前待更新元素索引,将所述当前待更新元素索引对应的当前元素值替换为当前循环次数,得到新的灰度表,将所述当前目标元素值从所述当前参照表中删除,得到新的参照表;其中,所述预设次数和所述预设数值与所述灰度表的元素总数相同,均为10的N次方。
对于基准数值,可以从右向左每次循环左移一位,取其连续的N位数字L(即参考值)。由于循环次数一般较大,如上述举例的100,基准数值的位数一般小于循环次数,因此,当左移到基准数值首位时,相当于需要重新再从原来的基准数值开始取L,这个操作被称为一个大循环。例如,为了便于说明,假设seed值比较简单,为1243248268(实际的seed值位数一般会比该值多),N为2,可以取值如下表3:
表3、参考值取值
Figure GDA0004141549490000121
可见,当L值与当前基准数值相同时,需要开始第二次大循环。
每次取到值L之后,令flag=initial_table[L%initial_table.size()]。其中,initial_table.size()指当前参照表的大小,也即当前参照表包含的元素数量;L%initial_table.size()表示基于当前参照表包含的元素数量对当前参考值L进行取余操作;[]中的数值指当前参照表中的当前目标元素索引,也即取余操作所得数值;flag表示当前目标元素索引对应的当前目标元素值。随后,从initial_table中删除flag这个元素,同时令gray_table[flag]=count,count为循环次数。当count=100,即initial_table为空时,对应的gray_table就是预设灰度表。
下面以基准数值为1243248268为例,描述整个循环过程:
其中,seed表示基准数值,calculate loop表示当前大循环次数,mod表示取模操作,操作所得值为L,idx表示当前参照表中的当前目标元素索引,size表示当前循环次数(也即count)。
gray_table:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
initial_table:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2122 23 2425 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 4748 49 50 5152 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 7374 75 76 77 7879 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
seed:1243248268 calculate loop:0------------------
1243248268 mod 100=68,idx:68 size:1
124324826 mod 100=26,idx:26 size:2
12432482 mod 100=82,idx:82 size:3
1243248 mod 100=48,idx:48 size:4
124324 mod 100=24,idx:24 size:5
12432 mod 100=32,idx:32 size:6
1243 mod 100=43,idx:43 size:7
124 mod 100=24,idx:24 size:8
12 mod 100=12,idx:12 size:9
gray_table:0 0 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 0 5 8 2 0 00 0 0 0 0 6 0 00 0 0 0 0 0 0 0 0 7 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 00 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
initial_table:0 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 2223 27 2829 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 47 48 50 51 52 53 5455 56 57 5859 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 8182 83 85 86 8788 89 90 91 92 93 94 95 96 97 98 99
seed:1243248268 calculate loop:1------------------
1243248268 mod 100=68,idx:68 size:10
124324826 mod 100=26,idx:26 size:11
12432482 mod 100=82,idx:82 size:12
1243248 mod 100=48,idx:48 size:13
124324 mod 100=24,idx:24 size:14
12432 mod 100=32,idx:32 size:15
1243 mod 100=43,idx:43 size:16
124 mod 100=24,idx:24 size:17
12 mod 100=12,idx:12 size:18
gray_table:0 0 0 0 0 0 0 0 0 0 0 0 9 18 0 0 0 0 0 0 0 0 0 0 5 8 2 014 17 11 0 0 06 0 0 0 0 15 0 0 0 0 0 0 7 0 0 4 0 0 0 16 0 0 13 0 0 0 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 100 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0
initial_table:0 1 2 3 4 5 6 7 8 9 10 11 14 15 16 17 18 19 20 21 22 2327 31 3233 35 36 37 38 40 41 42 43 44 45 47 48 50 51 52 54 55 57 58 59 60 6162 63 64 6566 67 69 70 71 72 73 74 75 77 78 79 80 81 82 83 85 86 87 88 89 9091 92 94 95 9697 98 99
seed:1243248268 calculate loop:2------------------
1243248268 mod 100=68,idx:68 size:19
124324826 mod 100=26,idx:26 size:20
12432482 mod 100=82,idx:2 size:21
1243248 mod 100=48,idx:48 size:22
124324 mod 100=24,idx:24 size:23
12432 mod 100=32,idx:32 size:24
1243 mod 100=43,idx:43 size:25
124 mod 100=24,idx:24 size:26
12 mod 100=12,idx:12 size:27
gray_table:0 0 21 0 0 0 0 0 0 0 0 0 9 18 0 27 0 0 0 0 0 0 0 0 5 8 2 014 17 11 0 023 6 20 26 0 0 15 0 0 0 0 0 24 7 0 0 4 0 0 0 16 0 0 13 0 0 0 0 250 0 22 0 0 0 1 0 0 0 00 0 0 10 0 0 0 0 0 0 0 3 19 0 0 0 0 0 0 0 12 0 0 0 0 00
initial_table:0 1 3 4 5 6 7 8 9 10 11 14 16 17 18 19 20 21 22 23 2731 32 37 3840 41 42 43 44 47 48 50 51 52 54 55 57 58 59 60 62 63 65 66 67 6970 71 72 73 7475 77 78 79 80 81 82 83 86 87 88 89 90 91 92 94 95 96 97 98 99
seed:1243248268 calculate loop:3------------------
1243248268 mod 100=68,idx:68 size:28
124324826 mod 100=26,idx:26 size:29
12432482 mod 100=82,idx:11 size:30
1243248 mod 100=48,idx:48 size:31
124324 mod 100=24,idx:24 size:32
12432 mod 100=32,idx:32 size:33
1243 mod 100=43,idx:43 size:34
124 mod 100=24,idx:24 size:35
12 mod 100=12,idx:12 size:36
gray_table:0 0 21 0 0 0 0 0 0 0 0 0 9 18 30 27 0 36 0 0 0 0 0 0 5 8 20 14 17 110 0 23 6 20 26 0 0 15 32 29 35 0 0 24 7 0 0 4 0 0 0 16 33 0 13 0 00 0 25 0 0 22 0 0 01 0 34 0 0 31 0 0 10 0 0 0 0 0 0 0 3 19 0 0 0 0 0 0 0 12 028 0 0 0 0
initial_table:0 1 3 4 5 6 7 8 9 10 11 16 18 19 20 21 22 23 27 31 3237 38 43 4447 48 50 51 52 55 57 58 59 60 62 63 65 66 67 69 71 72 74 75 77 7879 80 81 82 8386 87 88 89 90 91 92 94 96 97 98 99
seed:1243248268 calculate loop:4------------------
1243248268 mod 100=68,idx:4 size:37
124324826 mod 100=26,idx:26 size:38
12432482 mod 100=82,idx:20 size:39
1243248 mod 100=48,idx:48 size:40
124324 mod 100=24,idx:24 size:41
12432 mod 100=32,idx:32 size:42
1243 mod 100=43,idx:43 size:43
124 mod 100=24,idx:24 size:44
12 mod 100=12,idx:12 size:45
gray_table:0 0 21 0 0 37 0 0 0 0 0 0 9 18 30 27 0 36 0 45 0 0 0 0 5 82 0 14 1711 0 0 23 6 20 26 39 0 15 32 29 35 0 0 24 7 0 41 4 38 44 0 16 33 013 0 0 0 0 25 0 4222 0 0 0 1 0 34 0 0 31 0 0 10 0 0 0 43 0 0 40 3 19 0 0 0 00 0 0 12 0 28 0 0 0 0
initial_table:0 1 3 4 6 7 8 9 10 11 16 18 20 21 22 23 27 31 32 38 4344 47 52 5557 58 59 60 62 65 66 67 69 71 72 74 75 77 78 79 81 82 86 87 88 8990 91 92 94 9697 98 99
seed:1243248268 calculate loop:5------------------
1243248268 mod 100=68,idx:13 size:46
124324826 mod 100=26,idx:26 size:47
12432482 mod 100=82,idx:29 size:48
1243248 mod 100=48,idx:48 size:49
124324 mod 100=24,idx:24 size:50
12432 mod 100=32,idx:32 size:51
1243 mod 100=43,idx:43 size:52
124 mod 100=24,idx:24 size:53
12 mod 100=12,idx:12 size:54
gray_table:0 0 21 0 0 37 0 0 0 0 0 0 9 18 30 27 0 36 0 45 54 46 0 0 58 2 0 1417 11 0 0 23 6 20 26 39 0 15 32 29 35 0 0 24 7 0 41 4 38 44 0 16 33 013 50 53 47 025 0 42 22 0 48 0 1 0 34 0 0 31 51 0 10 0 0 0 43 0 0 40 3 19 0 00 0 0 52 0 12 0 28 490 0 0
initial_table:0 1 3 4 6 7 8 9 10 11 16 18 22 23 27 31 32 38 43 44 4752 55 60 6265 67 69 71 72 75 77 78 79 81 82 86 87 88 89 90 92 94 97 98 99
seed:1243248268 calculate loop:6------------------
1243248268 mod 100=68,idx:22 size:55
124324826 mod 100=26,idx:26 size:56
12432482 mod 100=82,idx:38 size:57
1243248 mod 100=48,idx:5 size:58
124324 mod 100=24,idx:24 size:59
12432 mod 100=32,idx:32 size:60
1243 mod 100=43,idx:3 size:61
124 mod 100=24,idx:24 size:62
12 mod 100=12,idx:12 size:63
gray_table:0 0 21 0 61 37 0 58 0 0 0 0 9 18 30 27 0 36 0 45 54 46 0 05 8 2 6314 17 11 0 0 23 6 20 26 39 0 15 32 29 35 0 0 24 7 0 41 4 38 44 0 1633 55 13 50 5347 0 25 0 42 22 0 48 59 1 56 34 0 62 31 51 0 10 0 0 0 43 0 0 403 19 60 0 0 0 57 52 012 0 28 49 0 0 0
initial_table:0 1 3 6 8 9 10 11 16 18 22 23 31 32 38 43 44 47 52 6062 65 71 7577 78 79 81 82 87 88 89 92 94 97 98 99
seed:1243248268 calculate loop:7------------------
1243248268 mod 100=68,idx:31 size:64
124324826 mod 100=26,idx:26 size:65
12432482 mod 100=82,idx:12 size:66
1243248 mod 100=48,idx:14 size:67
124324 mod 100=24,idx:24 size:68
12432 mod 100=32,idx:0 size:69
1243 mod 100=43,idx:12 size:70
124 mod 100=24,idx:24 size:71
12 mod 100=12,idx:12 size:72
gray_table:69 0 21 0 61 37 0 58 0 0 0 0 9 18 30 27 0 36 0 45 54 46 00 5 8 2 6314 17 11 66 0 23 6 20 26 39 70 15 32 29 35 67 72 24 7 0 41 4 38 440 16 33 55 13 5053 47 0 25 0 42 22 0 48 59 1 56 34 0 62 31 51 0 10 0 0 65 4368 0 40 3 19 60 0 71 6457 52 0 12 0 28 49 0 0 0
initial_table:1 3 6 8 9 10 11 16 18 22 23 32 47 52 60 62 65 71 75 7778 82 8792 94 97 98 99
seed:1243248268 calculate loop:8------------------
1243248268 mod 100=68,idx:12 size:73
124324826 mod 100=26,idx:26 size:74
12432482 mod 100=82,idx:4 size:75
1243248 mod 100=48,idx:23 size:76
124324 mod 100=24,idx:0 size:77
12432 mod 100=32,idx:9 size:78
1243 mod 100=43,idx:21 size:79
124 mod 100=24,idx:3 size:80
12 mod 100=12,idx:12 size:81
gray_table:69 77 21 0 61 37 0 58 0 75 80 0 9 18 30 27 0 36 0 45 54 460 0 5 8 263 14 17 11 66 78 23 6 20 26 39 70 15 32 29 35 67 72 24 7 73 41 4 3844 0 16 33 5513 50 53 47 0 25 0 42 22 0 48 59 1 56 34 81 62 31 51 0 10 0 0 6543 68 0 40 3 19 600 71 64 57 52 0 12 0 28 49 76 79 74
initial_table:3 6 8 11 16 18 22 23 52 60 62 65 75 77 78 82 87 92 94
seed:1243248268 calculate loop:9------------------
1243248268 mod 100=68,idx:11 size:82
124324826 mod 100=26,idx:8 size:83
12432482 mod 100=82,idx:14 size:84
1243248 mod 100=48,idx:0 size:85
124324 mod 100=24,idx:9 size:86
12432 mod 100=32,idx:4 size:87
1243 mod 100=43,idx:4 size:88
124 mod 100=24,idx:0 size:89
12 mod 100=12,idx:1 size:90
gray_table:69 77 21 85 61 37 89 58 0 75 80 90 9 18 30 27 0 36 87 4554 46 880 5 8 2 63 14 17 11 66 78 23 6 20 26 39 70 15 32 29 35 67 72 24 7 7341 4 38 44 8316 33 55 13 50 53 47 0 25 0 42 22 82 48 59 1 56 34 81 62 31 5186 10 0 0 65 43 68 040 3 19 60 84 71 64 57 52 0 12 0 28 49 76 79 74
initial_table:8 16 23 60 62 77 78 82 92 94
seed:1243248268 calculate loop:10------------------
1243248268 mod 100=68,idx:8 size:91
124324826 mod 100=26,idx:8 size:92
12432482 mod 100=82,idx:2 size:93
1243248 mod 100=48,idx:6 size:94
124324 mod 100=24,idx:0 size:95
12432 mod 100=32,idx:2 size:96
1243 mod 100=43,idx:3 size:97
124 mod 100=24,idx:0 size:98
12 mod 100=12,idx:0 size:99
gray_table:69 77 21 85 61 37 89 58 95 75 80 90 9 18 30 27 98 36 87 4554 4688 93 5 8 2 63 14 17 11 66 78 23 6 20 26 39 70 15 32 29 35 67 72 24 7 7341 4 38 4483 16 33 55 13 50 53 47 99 25 96 42 22 82 48 59 1 56 34 81 62 31 5186 10 0 97 6543 68 94 40 3 19 60 84 71 64 57 52 91 12 92 28 49 76 79 74
initial_table:77
seed:1243248268 calculate loop:11------------------
1243248268 mod 100=68,idx:0 size:100
gray_table:69 77 21 85 61 37 89 58 95 75 80 90 9 18 30 27 98 36 87 4554 4688 93 5 8 2 63 14 17 11 66 78 23 6 20 26 39 70 15 32 29 35 67 72 24 7 7341 4 38 44 83 16 33 55 13 50 53 47 99 25 96 42 22 82 48 59 1 56 34 81 62 3151 86 10 100 97 65 43 68 94 40 3 19 60 84 71 64 57 52 91 12 92 28 49 76 79 74
步骤204、检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取第一用户对应的用户标识信息。
其中,用户标识信息为正整数。例如用户标识信息uid为1502400958。
步骤205、基于预设数值对用户标识信息进行取余操作,将所得数值作为对应的第一元素索引。
其中,预设数值与预设灰度表中的元素总数相同。以上举例为例,基于100对1502400958进行取余操作,得到58,则第一元素索引为58。
步骤206、以第一元素索引查询第一程序包对应的预设灰度表,得到所述用户标识信息在预设灰度表中对应的第一元素值。
以上举例为例,第一元素值可表示为gray_table[58],经过查询,第一元素值为53。
步骤207、当第一元素值对应的第一比例值处于第一程序包对应的预设灰度比例范围内时,确定第一用户为灰度用户。
例如,预设灰度比例范围为0-80%,第一元素值对应的第一比例值为53%,处于0-80%范围内,因此,第一用户为灰度用户。
本发明实施例提供的灰度用户确定方法,先将获取到的第一程序包的程序标识信息转换为基准数值,然后构建参照表和灰度表,基于基准数值和预设更新规则,将灰度表中的元素值替换为参照表中的元素值,以生成第一程序包对应的预设灰度表,在检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取第一用户对应的用户标识信息,根据用户标识信息查询第一程序包对应的预设灰度表,在查询结果满足预设要求时,确定第一用户为灰度用户。通过采用上述技术方案,可以生成稳定的预设灰度表,并且能保证对于不同的程序包生成的灰度表足够随机,可支持灰度比例的稳定增加(不会影响已经灰度的用户),也可支持灰度比例降低(灰度回收情况),有利于实现准确的放量控制,对于应用程序的质量控制也能够起到很好的效果。
图3为本发明实施例提供的一种灰度用户确定装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行灰度用户确定方法来确定灰度用户。如图3所示,该装置包括:
用户标识信息获取模块301,用于检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取所述第一用户对应的用户标识信息;
预设灰度表查询模块302,用于根据所述用户标识信息查询所述第一程序包对应的预设灰度表,其中,所述预设灰度表基于所述第一程序包对应的程序标识信息生成;
灰度用户确定模块303,用于在查询结果满足预设要求时,确定所述第一用户为灰度用户。
本发明实施例提供的灰度用户确定装置,用于确定用户是否为灰度用户的预设灰度表基于程序包对应的程序标识信息生成,而对于一个程序包来说,其对应的程序标识信息是唯一的,因此,预设灰度表是稳定的,当出现意外情况时,不会导致灰度用户群体发生变化,且能够保证对于不同的程序包生成的预设灰度表满足随机性要求,使不同程序包的灰度用户群体足够分散,进而达到更加合理地确定灰度用户的技术效果。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的灰度用户确定装置。图4为本发明实施例提供的一种计算机设备的结构框图。计算机设备400包括存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序,所述处理器402执行所述计算机程序时实现本发明实施例提供的灰度用户确定方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的灰度用户确定方法。
上述实施例中提供的灰度用户确定装置、设备以及存储介质可执行本发明任意实施例所提供的灰度用户确定方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的灰度用户确定方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。

Claims (6)

1.一种灰度用户确定方法,其特征在于,包括:
检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取所述第一用户对应的用户标识信息,其中,所述用户标识信息为正整数;
基于预设数值对所述用户标识信息进行取余操作,将所得数值作为对应的第一元素索引,以所述第一元素索引查询所述第一程序包对应的预设灰度表,得到所述用户标识信息在所述预设灰度表中对应的第一元素值,其中,所述预设数值与所述预设灰度表中的元素总数相同,所述预设灰度表基于所述第一程序包对应的程序标识信息生成;
当所述第一元素值对应的第一比例值处于所述第一程序包对应的预设灰度比例范围内时,确定所述第一用户为灰度用户;
其中,所述预设灰度表通过如下方式得到:构建参照表和灰度表,所述参照表中的元素总数与所述灰度表中的元素总数相同,所述参照表中的元素值为正整数,并从0开始依次递增;利用预设哈希算法将所述程序标识信息转换为正整数,得到对应的基准数值;采用预设次数的如下循环操作更新所述灰度表中的元素值:针对当前基准数值取最后N位数字,作为当前参考值,并将所述当前基准数值左移一位,得到新的基准数值,其中,在当前参考值与当前基准数值相同时,将所述基准数值作为新的基准数值;基于当前参照表包含的元素数量对所述当前参考值进行取余操作,将所得数值作为在当前参照表中对应的当前目标元素索引,将所述当前目标元素索引对应的当前目标元素值确定为当前灰度表中的当前待更新元素索引,将所述当前待更新元素索引对应的当前元素值替换为当前循环次数,得到新的灰度表,将所述当前目标元素值从所述当前参照表中删除,得到新的参照表,其中,所述预设次数和所述预设数值与所述灰度表的元素总数相同,均为10的N次方;得到预设灰度表。
2.根据权利要求1所述的方法,其特征在于,在所述确定所述第一用户为灰度用户之后,还包括:
向所述灰度用户对应的客户端下发所述第一程序包。
3.根据权利要求1所述的方法,其特征在于,还包括:
在查询结果不满足预设要求时,确定所述第一用户不是灰度用户;
若检测到所述第一用户对应的客户端存储有或已安装所述第一程序包,则通知所述客户端删除或卸载所述第一程序包。
4.一种灰度用户确定装置,其特征在于,包括:
用户标识信息获取模块,用于检测到针对第一程序包的第一用户的灰度确定事件被触发时,获取所述第一用户对应的用户标识信息,其中,所述用户标识信息为正整数;
预设灰度表查询模块,用于基于预设数值对所述用户标识信息进行取余操作,将所得数值作为对应的第一元素索引,以所述第一元素索引查询所述第一程序包对应的预设灰度表,得到所述用户标识信息在所述预设灰度表中对应的第一元素值,其中,所述预设数值与所述预设灰度表中的元素总数相同,所述预设灰度表基于所述第一程序包对应的程序标识信息生成;
灰度用户确定模块,用于当所述第一元素值对应的第一比例值处于所述第一程序包对应的预设灰度比例范围内时,确定所述第一用户为灰度用户;
其中,所述预设灰度表通过如下方式得到:构建参照表和灰度表,所述参照表中的元素总数与所述灰度表中的元素总数相同,所述参照表中的元素值为正整数,并从0开始依次递增;利用预设哈希算法将所述程序标识信息转换为正整数,得到对应的基准数值;采用预设次数的如下循环操作更新所述灰度表中的元素值:针对当前基准数值取最后N位数字,作为当前参考值,并将所述当前基准数值左移一位,得到新的基准数值,其中,在当前参考值与当前基准数值相同时,将所述基准数值作为新的基准数值;基于当前参照表包含的元素数量对所述当前参考值进行取余操作,将所得数值作为在当前参照表中对应的当前目标元素索引,将所述当前目标元素索引对应的当前目标元素值确定为当前灰度表中的当前待更新元素索引,将所述当前待更新元素索引对应的当前元素值替换为当前循环次数,得到新的灰度表,将所述当前目标元素值从所述当前参照表中删除,得到新的参照表,其中,所述预设次数和所述预设数值与所述灰度表的元素总数相同,均为10的N次方;得到预设灰度表。
5.一种灰度用户确定计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3任一项所述的方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一所述的方法。
CN202010242490.1A 2020-03-31 2020-03-31 灰度用户确定方法、装置、设备及存储介质 Active CN111443934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010242490.1A CN111443934B (zh) 2020-03-31 2020-03-31 灰度用户确定方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010242490.1A CN111443934B (zh) 2020-03-31 2020-03-31 灰度用户确定方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111443934A CN111443934A (zh) 2020-07-24
CN111443934B true CN111443934B (zh) 2023-05-16

Family

ID=71649357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010242490.1A Active CN111443934B (zh) 2020-03-31 2020-03-31 灰度用户确定方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111443934B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886189A (zh) * 2019-02-20 2019-06-14 Oppo广东移动通信有限公司 指纹模板获取方法及相关装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886258B2 (en) * 2014-08-12 2018-02-06 Xiaomi Inc. Method and device for grayscale-upgrading
CN109558162B (zh) * 2017-09-26 2021-08-10 腾讯科技(深圳)有限公司 应用程序发布方法、装置、计算机设备及存储介质
CN108470001B (zh) * 2018-03-16 2021-02-26 北京腾云天下科技有限公司 一种网页应用灰度发布方法、服务器及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109886189A (zh) * 2019-02-20 2019-06-14 Oppo广东移动通信有限公司 指纹模板获取方法及相关装置

Also Published As

Publication number Publication date
CN111443934A (zh) 2020-07-24

Similar Documents

Publication Publication Date Title
CN109831487B (zh) 分片文件验证方法及终端设备
US9256765B2 (en) System and method for identifying software changes
JP5497206B2 (ja) ディレクトリエントリを処理するための方法及びコンピュータ装置
CN108388604B (zh) 用户权限数据管理装置、方法及计算机可读存储介质
JP6435398B2 (ja) 端末識別子を促進する方法及びシステム
CN110737658A (zh) 数据分片存储方法、装置、终端及可读存储介质
CN111475105B (zh) 监控数据存储方法、设备、服务器及存储介质
US11314598B2 (en) Method for approximating similarity between objects
CN110825399B (zh) 一种应用程序的部署方法及装置
CN111708771A (zh) 数据查重方法、装置、设备及计算机存储介质
CN111897846A (zh) 缓存数据校验方法、装置、设备及存储介质
CN109101232B (zh) 一种产品开发的方法、装置、计算机设备及存储介质
CN109213774B (zh) 数据的存储方法及装置、存储介质、终端
CN111651667A (zh) 数据推送分流控制方法、装置及计算机可读存储介质
CN111343267B (zh) 一种配置的管理方法及系统
CN113268439A (zh) 内存地址的查找方法和装置、电子设备和存储介质
US8554889B2 (en) Method, system and apparatus for managing computer identity
US11157651B2 (en) Synchronizing masking jobs between different masking engines in a data processing system
CN109450977B (zh) 缓存数据的推送、更新方法及装置
CN114296777A (zh) 软件升级方法、装置、服务器及计算机可读存储介质
CN107451202B (zh) 一种数据访问方法及设备
CN111443934B (zh) 灰度用户确定方法、装置、设备及存储介质
US11200204B2 (en) Method, device and computer program product for searching a file
CN114237633A (zh) 应用配置方法、装置、设备及存储介质
CN110377512B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231010

Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore

Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd.

Address before: 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou, Guangdong 510000

Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd.