CN106844778B - 一种数据处理方法、装置及网络服务器 - Google Patents
一种数据处理方法、装置及网络服务器 Download PDFInfo
- Publication number
- CN106844778B CN106844778B CN201710132093.7A CN201710132093A CN106844778B CN 106844778 B CN106844778 B CN 106844778B CN 201710132093 A CN201710132093 A CN 201710132093A CN 106844778 B CN106844778 B CN 106844778B
- Authority
- CN
- China
- Prior art keywords
- data increment
- data
- increment
- value
- time period
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000013500 data storage Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 40
- 230000011218 segmentation Effects 0.000 claims description 18
- 230000000694 effects Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法、装置及网络服务器,网络服务器包括数据存储设备,数据存储设备中存储有数据增量字典,数据增量字典包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量,其中每个第一时间段包括第二数量个第二时间段,该方法包括:接收客户端访问请求并获取该请求对应的当前时间;从数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量;获取当前时间所属的第二时间段对应的数据增量上限值;根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量;以及根据第二数据增量更新当前数据总量,并将更新后的当前数据总量发送给客户端。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种数据处理方法、装置及网络服务器。
背景技术
随着互联网技术的不断发展,越来越多的用户参与到互联网中的各种互动活动中。为了更好地向用户提供其参与活动的当前情况,一般会在活动提交表单页上显示当前访问注册的人数。然而,考虑到同类型的互动活动之间存在一定的竞争关系,对于活动A而言,如果与其类型相同的活动B获取到其真实的访问注册人数,则一方面可以了解活动A的用户参与情况,另一方面还可以根据这一人数制定相关的方案来吸引活动A的用户来参与活动B,从而降低活动A的人气指数以从竞争中脱颖而出。为避免这类现象的发生,可以通过产生模拟访问注册人数来隐藏真实访问注册人数,在向用户提供注册人数以吸引其积极参与活动的同时,还降低了真实参与情况被窃取的风险。
现有的生成模拟访问注册人数的数据处理方法多采用随机数无上限自增法,根据预设置的随机种子,用户每次访问活动表单页面会在原有的访问人数上叠加随机数,然后呈现出最终结果。但是,访问人数会随着访问次数的增加而无限增大,且不能控制每分钟内人数的增加量,以及每月增加量,无法有效控制访问人数的波动率,不能在预估范围内进行波动增长。因此,需要一种新的数据处理方法来优化上述过程。
发明内容
为此,本发明提供一种数据处理方案,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种数据处理方法,适于在网络服务器执行,网络服务器包括数据存储设备,数据存储设备中存储有数据增量字典,数据增量字典包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量,其中每个第一时间段包括第二数量个第二时间段,该方法包括如下步骤:接收客户端访问请求并获取该请求对应的当前时间;从数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量;获取当前时间所属的第二时间段对应的数据增量上限值;根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量;以及根据第二数据增量更新当前数据总量,并将更新后的当前数据总量发送给客户端。
可选地,在根据本发明的数据处理方法中,获取当前时间所属的第二时间段对应的数据增量上限值包括:若第一数据增量不大于第一阈值,则将数据增量上限值设置为预定值;若第一数据增量大于第一阈值,则获取到当前时间为止、第一数据增量中的已分配数据增量,根据第一数据增量、已分配数据增量和当前时间,调整数据增量上限值。
可选地,在根据本发明的数据处理方法中,调整数据增量上限值包括:获取当前时间所属的第二时间段在当前时间的第一时间段中排列的序号;将第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量;计算序号与第二数量的商,将商与未分配数据增量的乘积取整作为数据增量上限值;计算第二数量与序号的差值,计算未分配数据增量与该差值的商,并将未分配数据增量与该商相除得到的商取整作为数据增量下限值;若数据增量上限值小于数据增量下限值,则将数据增量上限值更新为数据增量下限值。
可选地,在根据本发明的数据处理方法中,计算分配给第二时间段对应的第二数据增量包括:获取到当前时间为止、第一数据增量中的已分配数据增量,将第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量,并将第二数据增量最大值初始化为未分配数据增量;获取当前时间所属的第二时间段在当前时间的第一时间段中排列的序号,将第二数量与序号的差值作为第三数量;计算第二数据增量最大值与第三数量的商,将该商与100的乘积作为发散指数;若发散指数不小于100,则计算第二数据增量最大值与第三数量的商,并将第二数据增量最大值与该商相除得到的商取整作为第二数据增量最小值;计算第三数量与第二数量之间的比值,将1与该比值的差值作为等比倍率,并将第二数据增量最小值更新为其与等比倍率的乘积,将第二数据增量最大值更新为其与等比倍率的乘积;随机生成位于第二数据增量最小值和第二数据增量最大值之间的一个整数作为分配给第二时间段对应的第二数据增量。
可选地,在根据本发明的数据处理方法中,在得到第二数据增量最小值之后,还包括:若第二数据增量最大值大于数据增量上限值,则将第二数据增量最大值更新为数据增量上限值。
可选地,在根据本发明的数据处理方法中,还包括:若发散指数小于100,则在1至100的数值范围内随机生成一个整数作为命中率;若命中率不大于发散指数,则将第二数据增量最大值更新为其与2的商取整后的值,并随机生成位于1和第二数据增量最大值之间的一个整数作为分配给第二时间段对应的第二数据增量;若命中率大于发散指数,则将分配给第二时间段对应的第二数据增量设置为0。
可选地,在根据本发明的数据处理方法中,还包括:若当前时间所属的第一时间段处于第一时间范围,则直接将当前数据总量发送给客户端。
可选地,在根据本发明的数据处理方法中,若当前时间所属的第一时间段处于第二时间范围,还包括:获取该第一时间段在第一时间范围中所对应的时间段;获取数据增量字典中该时间段对应的第一数据增量,将该第一数据增量除以2作为增量调整量;将当前时间所属的第一时间段对应的第一数据增量更新为其与增量调整量之和。
可选地,在根据本发明的数据处理方法中,还包括预先生成数据增量字典,预先生成数据增量字典的步骤包括:获取预定时间范围内待分配的数据增量总量、第一数量和第一数据增量最小值,其中第一数量为预定时间范围所包括的第一时间段的数量,并将分配次数初始化为1;计算第一数量与分配次数的第一差值,将第一差值与第一数据增量最小值相乘,将待分配的数据增量总量与该相乘结果的第二差值作为第一数据增量最大值,并将第一差值与2的商取整作为切分比率;将第一数据增量最大值更新为第一数据增量最大值与切分比率的商取整后的值,随机生成位于第一数据增量最小值和第一数据增量最大值之间的一个整数作为第一数据增量,将当前分配次数所对应的第一时间段与该第一数据增量相关联的存储到数据增量字典中;将待分配的数据增量总量更新为待分配的数据增量总量与第一数据增量的差值,将分配次数增加1;当分配次数小于第一数量时,继续执行从计算第一差值开始的步骤,否则将当前分配次数所对应的第一时间段与待分配的数据增量总量相关联的存储到数据增量字典中。
可选地,在根据本发明的数据处理方法中,在得到切分比率之后,还包括:若第一数据增量最大值与第一数据增量最小值相等,或者,切分比率为0,则将切分比率更新为1。
根据本发明的又一个方面,提供一种数据处理装置,适于驻留在网络服务器中,网络服务器包括数据存储设备,数据存储设备中存储有数据增量字典,数据增量字典包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量,其中每个第一时间段包括第二数量个第二时间段,该装置包括接收模块、获取模块、波动值调整器、波动发生器、更新模块和发送模块。其中,接收模块适于接收客户端访问请求并获取该请求对应的当前时间;获取模块适于从数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量;波动值调整器适于获取当前时间所属的第二时间段对应的数据增量上限值;波动发生器适于根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量;更新模块适于根据第二数据增量更新当前数据总量;以及发送模块适于将更新后的当前数据总量发送给客户端。
根据本发明的又一个方面,提供一种网络服务器,包括根据本发明的数据处理装置和数据存储设备。
根据本发明的又一个方面,还提供一种计算设备,包括至少一个处理器,以及包括计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为与至少一个处理器一起使得计算设备执行根据本发明的数据处理方法。
根据本发明的数据处理的技术方案,网络服务器接收客户端访问请求并获取该请求对应的当前时间,并从数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量,以及获取当前时间所属的第二时间段对应的数据增量上限值,根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量,根据第二数据增量更新当前数据总量,并将更新后的当前数据总量发送给客户端。上述技术方案中,在进行数据处理之前,需要预先生成各个第一时间段对应的第一数据增量,并将第一时间段与其对应的第一数据增量相关联的存储到数据增量字典中。在获取数据增量上限值时,会根据第一数据增量与第一阈值的大小关系,对数据增量上限值进行适当调整以提高后续数值计算的可靠性,而在计算第二数据增量时,以发散指数与100的大小关系作为判断依据,对于发散指数不小于100和小于100这两种情况分别计算第二数据增量,最终通过第二数据增量更新当前数据总量并发送客户端,有效控制每个第二时间段内的第二数据增长量及当前数据总量的波动,实现了当前数据总量在一定范围内的波动增长,避免了某个第一时间段或第二时间段出现数据增长特别高的不合理现象。同时,当当前时间处于第二时间范围时,对从数据增量字典获取到的第一数据增量进行数值调整,这一处理是考虑到一些特殊时间范围,比如夜间的数据总量增长不明显或停止增长的情况,从而进一步提高当前数据总量的可信度,以更加符合实际情况。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的数据处理系统100的示意图;
图2示出了根据本发明一个实施例的数据处理方法400的流程图;
图3示出了根据本发明一个实施例的获取当前时间所属的第二时间段对应的数据增量上限值的步骤S430的流程图;
图4示出了根据本发明一个实施例的计算分配给第二时间段对应的第二数据增量的步骤S440的流程图;
图5示出了根据本发明一个实施例的网络服务器200的结构框图;
图6示出了根据本发明一个实施例的数据处理装置500的示意图;
图7示出了根据本发明又一个实施例的数据处理装置700的示意图;以及
图8示出了根据本发明又一个实施例的数据处理装置800的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的数据处理系统100的示意图。应当指出,图1中的数据处理系统100仅是示例性的,在具体的实践情况中,数据处理系统100中可以有不同数量的客户端和网络服务器,本发明对数据处理系统100中所包括的客户端和网络服务器的数量不做限制。如图1所示,数据处理系统100中包括网络服务器200和客户端300。其中,网络服务器200与客户端300通信连接,客户端300可以是智能手机、平板电脑或PC机,但不限于此。网络服务器200中包括数据存储设备(图中未示出),该数据存储设备中存储有数据增量字典,数据增量字典包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量,每个第一时间段包括第二数量个第二时间段。在这里,第一时间段可对应以1小时为时间区间所划分出来的时间段,第一数量则为在预定时间范围所包括的第一时间段的数量,第二时间段可对应以1分钟为时间区间所划分出来的时间段,第二数量即为第一时间段所包括的第二时间段的数量。当用户参与互联网中的互动活动时,在活动提交表单页上会显示当前访问注册的人数总量,显然该人数总量会随时间的推移不断增长,因此可以利用数据增量字典中的相关数据来生成每一分钟的人数增长量以获得相应访问时间的人数总量。假定2016年12月为预定时间范围,则第一数量为12月内所包括的小时数,其值为(31-1+1)×24=744,第一数据增量则为每小时的人数增长量,第二数量为1小时所包括的分钟数,其值为60。
以下将以客户端300为例,进行以上数据处理的技术方案的说明。具体来说,用户通过客户端300进行活动表单提交,当用户进入提交页面时,客户端300向网络服务器200发送访问请求,此时,网络服务器200接收客户端300的访问请求并获取该请求对应的当前时间。随后,网络服务器200从数据存储设备中存储的数据增量字典中,获取与当前时间所属的第一时间段对应的第一数据增量,并获取当前时间所属的第二时间段对应的数据增量上限值,根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量,最后根据第二数据增量更新当前数据总量,并将更新后的当前数据总量发送给客户端300,而客户端300中的提交页面会向用户显示当前数据总量。通过本数据处理系统100,有效控制每个第二时间段内的第二数据增长量及当前数据总量的波动,避免了某个第一时间段或第二时间段出现数据增长特别高的不合理现象,实现了当前数据总量在一定范围内的波动增长,提高当前数据总量的可信度。
图2示出了根据本发明一个实施例的数据处理方法400的流程图。如图2所示,在步骤S410中,网络服务器200接收客户端300访问请求并获取该请求对应的当前时间。根据本发明的一个实施例,客户端300所发出的访问请求所对应的当前时间为2016年12月20日17点40分25秒,将其以20161220174025这一形式进行表示。
随后,进入步骤S420,从数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量。根据本发明的一个实施例,第一时间段对应以1小时为时间区间所划分出来的时间段,则当前时间20161220174025所属的第一时间段为2016年12月20日17点~18点这1个小时,将其表示为2016122017。对于存储在数据存储设备中的数据增量字典而言,其包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量。换言之,数据增量字典以第一时间段作为主键,以第一数据增量作为键值,形成了覆盖预定时间范围内的多个键值对,通过查询第一时间段,即可获取其对应的第一数据增量。
表1示出了根据本发明一个实施例的数据增量字典,具体如下所示:
第一时间段 | 第一数据增量 |
2016120100 | 90 |
2016120101 | 85 |
2016120102 | 55 |
…… | …… |
2016120123 | 80 |
2016120200 | 75 |
…… | …… |
2016121012 | 110 |
2016121013 | 75 |
…… | …… |
2016122005 | 45 |
2016122006 | 50 |
2016122007 | 60 |
…… | …… |
2016122016 | 140 |
2016122017 | 160 |
2016120121 | 195 |
2016120122 | 150 |
2016120123 | 100 |
…… | …… |
2016123121 | 125 |
2016123122 | 95 |
2016123123 | 70 |
表1
如表1所示,在上述数据增量字典中,体现了在2016年12月这1个月内的各第一时间段,即各小时的第一数据增量,其中第一数量为(31-1+1)×24=744,从数据增量字典中获取与该第一时间段2016122017对应的第一数据增量为160。
在步骤S430中,获取当前时间所属的第二时间段对应的数据增量上限值。图3示出了根据本发明一个实施例的获取当前时间所属的第二时间段对应的数据增量上限值的步骤S430的流程图。如图3所示,在步骤S431中,若第一数据增量不大于第一阈值,则将数据增量上限值设置为预定值。根据本发明的一个实施例,第一阈值优选为60,预定值优选为20,由于第一数据增量为160,大于第一阈值,不满足第一数据增量不大于第一阈值的条件,因此步骤S431并未执行,转而执行步骤S432。在步骤S432中,若第一数据增量大于第一阈值,则获取到当前时间为止、第一数据增量中的已分配数据增量,根据第一数据增量、已分配数据增量和当前时间,调整数据增量上限值。很明显,第一数据增量大于第一阈值的条件满足,因此开始执行调整数据增量上限值的步骤。根据该实施方式,可以通过以下方式来调整数据增量上限值。首先,获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号。在该实施方式中,第二时间段对应以1分钟为时间区间所划分出来的时间段,由于每个第一时间段包括第二数量个第二时间段,则第二数量设置为60,与1小时包括60分钟相对应。当前时间为20161220174025,所属的第二时间段为第40分钟至第41分钟这1分钟,表示为201612201740,在其所属的第一时间段2016122017中排列的序号为40。随后,将第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量,已分配数据增量为到第40分钟为止,17点~18点这1个小时对应的第一数据增量中已经分配的数据增量,其值为110,则当前时间对应的未分配数据增量为160-110=50。接下来,计算序号与第二数量的商,得到商为40/60=0.67,将商与未分配数据增量的乘积取整作为数据增量上限值,此时数据增量上限值为 计算第二数量与序号的差值,得到差值为60-40=20,计算未分配数据增量与该差值的商,得到商为50/20=2.50,并将未分配数据增量与该商相除得到的商取整作为数据增量下限值,这里的取整处理同样为向下取整,则数据增量下限值为数据增量下限值为20,数据增量上限值为30,因此数据增量上限值大于数据增量下限值,因此无需对数据增量上限值进行调整,若数据增量上限值小于数据增量下限值,则将数据增量上限值更新为数据增量下限值。在这里需要说明的是,上述取整处理一般为向下取整,而以上计算商的处理过程,所得到的商均是四舍五入到小数点后2位,且均适用于以下处理步骤。关于调整当前时间所属的第二时间段对应的数据增量上限值的关键性代码如下:
int maxValue=0;
int tempCurrent=0;
if(myTicket!=null)
{tempCurrent=Convert.ToInt32(((string)myTicket).Split('_')[1]);
}
maxValue=(int)Math.Floor((currentBaseNum-tempCurrent)*(Math.
Round((float)currentDate.Minute/60,2)));
int low=(int)Math.Floor((currentBaseNum-tempCurrent)/Math.Round
((float)(currentBaseNum-tempCurrent)/(60-currentDate.Minute),2));
if(low>maxValue)
{maxValue=low;
}
在获取到当前时间所属的第二时间段对应的数据增量上限值后,进入步骤S440,根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量。图4示出了根据本发明一个实施例的计算分配给第二时间段对应的第二数据增量的步骤S440的流程图。如图4所示,在步骤S441中,获取到当前时间为止、第一数据增量中的已分配数据增量,将第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量,并将第二数据增量最大值初始化为未分配数据增量。根据该实施方式,到当前时间为止、第一数据增量中的已分配数据增量为110,未分配数据增量为160-110=50,则第二数据增量最大值初始化为50。接下来,进入步骤S442,获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号,当前时间20161220174025所属的第二时间段为201612201740,其在当前时间所属的第一时间段2016122017中排列的序号为40,再将第二数量与序号的差值作为第三数量,可得第三数量为60-40=20。随后,在步骤S443中,计算第二数据增量最大值与第三数量的商,将该商与100的乘积作为发散指数,则发散指数为50/20×100=250。得到发散指数后,进入步骤S444,若发散指数不小于100,则计算第二数据增量最大值与第三数量的商,所得到的商为50/20=2.50,并将第二数据增量最大值与该商相除得到的商取整作为第二数据增量最小值,可得第二数据增量最小值为
在得到第二数据增量最小值之后,在步骤S440中还包括步骤S447(图中未示出),步骤S447是在第二数据增量最大值大于数据增量上限值的情况下才执行的,否则直接跳过步骤S447直接执行步骤S445。在步骤S447中,若第二数据增量最大值大于数据增量上限值,则将第二数据增量最大值更新为数据增量上限值。而根据该实施方式,第二数据增量最大值为50,大于数据增量上限值30,因此将第二数据增量最大值更新为30。进而,在步骤S445中,计算第三数量与第二数量之间的比值,将1与该比值的差值作为等比倍率,则等比倍率为1-20/60=0.67,并将第二数据增量最小值更新为其与等比倍率的乘积,将第二数据增量最大值更新为其与等比倍率的乘积,得到第二数据增量最小值为第二数据增量最大值为最后,在步骤S446中,随机生成位于第二数据增量最小值13和第二数据增量最大值20之间的一个整数作为分配给第二时间段对应的第二数据增量,此时随机生成的第二数据增量为15。
在上述步骤S443中,计算出了发散指数,而步骤S444~S446对发散指数不小于100的情况进行了处理,而对于发散指数小于100的情况,很明显在分配第二时间对应的第二数据增量时的方法与前者不同。根据本发明的又一个实施例,发散指数为72,小于100,若发散指数小于100,则在1至100的数值范围内随机生成一个整数作为命中率,根据该实施方式,随机生成的命中率为65。随后,根据该命中率与发散指数的大小关系来分配第二时间段对应的第二数据增量。若命中率不大于发散指数,则将第二数据增量最大值更新为其与2的商取整后的值,由于命中率65不大于发散指数72,因此第二数据增量最大值为随机生成位于1和第二数据增量最大值25之间的一个整数作为分配给第二时间段对应的第二数据增量,最终得到该第二数据增量为21。若命中率大于发散指数,则将分配给第二时间段对应的第二数据增量设置为0。关于计算分配给第二时间段对应的第二数据增量的关键性代码如下所示:
int result=0;
try{
int max=total-current;
int k=seqment-number;
double ratio=Math.Round((float)max/k,2)*100;
if(ratio>=100)
{int low=(int)Math.Floor(max/Math.Round((float)max/k,2));
if(max>maxValue)
{max=maxValue;
}
float balanceRadio=(1-((float)k/seqment));
low=(int)(balanceRadio*low);
max=(int)(balanceRadio*max);
result=(int)rand.Next(low,max+1);
}
else
{int myValue=radioRand.Next(1,101);
if(myValue<=ratio)
{max=max/2;
result=(int)rand.Next(1,max+1);}}
}
在获取到第二数据增量后,执行步骤S450,根据第二数据增量更新当前数据总量,并将更新后的当前数据总量发送给客户端。根据本发明的一个实施例,第二数据增量为15,截止到当前时间的当前数据总量为21753,则将当前数据总量与第二数据量叠加后的值来更新当前数据总量,则更新后的当前数据总量为21753+15=21768,并将其发送给客户端300以向用户展示。值得注意的是,当在同一第二时间段内有多个客户端向网络服务器200发送访问请求时,对于最先发送访问请求的客户端,网络服务器200才会执行本发明的数据处理方法400,在得到更新后的当前数据总量后,一方面将其发送给对应的客户端,另一方面也会将该当前数据总量存储,以便在接收到同一第二时间段内的其他客户端发送的访问请求时,将该当前数据总量直接发送给相应的各客户端。
然而,考虑到一些特殊时间范围,比如夜间的数据总量增长不明显或停止增长的情况,可以根据第一时间段所处的时间范围的不同来执行对应的处理流程,如对从数据增量字典中获取到的第一数据增量再进行适当调整等,以便提高数据的可靠性。根据本发明的又一个实施例,若当前时间所属的第一时间段处于第一时间范围,则直接将当前数据总量发送给客户端,若当前时间所属的第一时间段处于第二时间范围,则需要对从数据字典获取到的第一数据增量进行调整处理,若当前时间所属的第一时间段既不处于第一时间范围,也不处于第二时间范围,则继续按序执行方法400的各步骤即可。
在该实施方式中,第一时间范围为每天的0点~7点这7个小时,由于7点这个时间点并不包括在第一时间范围内,因此当第一时间段中的小时数为0~6中任一个时,则说明第一时间段处于第一时间范围。而第二时间范围为每天的7点至21点这14个小时,同样21点这个时间点并不包括在第二时间范围内,则当第一时间段中的小时数为7~20中任一个时,说明第一时间段处于第二时间范围。由于当前时间20161220174025所属的第一时间段为2016122017,对应的小时数为17,因此第一时间段处于第二时间范围,此时获取该第一时间段在第一时间范围中所对应的时间段。由第一时间范围与第二时间范围可知,时间临界点为7点,计算第一时间段中的小时数与时间临界点的差值,将该差值与2的商向下取整后作为该第一时间段在第一时间范围中所对应的时间段中的小时数,该小时数为由此可知该第一时间段在第一时间范围中所对应的时间段为2016122005,对应5点~6点这1个小时。随后,获取数据增量字典中该时间段对应的第一数据增量,从表1中得到2016122005这一第一时间段对应的第一数据增量为45,将该第一数据增量除以2作为增量调整量。由于45是个奇数,除以2所得的商并非整数,因此需要进行向下取整,则增量调整量为最后,将当前时间所属的第一时间段对应的第一数据增量更新为其与增量调整量之和,则该第一数据增量为160+22=182。
然而,如果第一时间段为2016122018,其对应的小时数则为18,在计算第一时间段在第一时间范围中所对应的时间段中的小时数时,该小时数为 该第一时间段在第一时间范围中所对应的时间段也为2016122005,说明2016122005这一第一时间段在数据增量字典中对应的第一数据增量,是被分配给了2016122017和2016122018这2个第一时间段。因此,2016122018这一第一时间段对应的增量调整量应为关于对从数据字典获取到的第一数据增量进行调整处理的关键性代码,具体如下所示:
if(currentDate.Hour>=0&¤tDate.Hour<=7)
{stopTime=currentDate.AddDays(-1).ToString("yyyyMMdd23");
}
else
{stopTime=currentDate.AddHours(-1).ToString("yyyyMMddHH");
}
int except=0;
int currentBaseNum=0;
if(currentDate.Hour>=7)
{int midResult=0;
int myHour=(currentDate.Hour-7)/2;
if(myHour<7)
{if(currentDate.Hour>7&&myHour<=6)
{except=dic.Where(c=>c.Key>=Convert.ToInt64(currentDate.ToString
("yyyyMMdd0")+myHour.ToString())&&c.Key<=Convert.ToInt64
(currentDate.ToString("yyyyMMdd06"))).Select(c=>c.Value).Sum();
}
midResult=dic.Where(c=>c.Key==Convert.ToInt64(currentDate.
ToString("yyyyMMdd0")+myHour.ToString())).FirstOrDefault().Value;
if((currentDate.Hour+1-7)/2!=myHour)
{except=except-midResult/2;
midResult=midResult-midResult/2;
}
else
{midResult=midResult/2;}
}
需要说明的是,数据存储设备中所存储的数据增量字典是预先生成的,因此根据本发明的一个实施例,可按以下方式预先生成数据增量字典。首先,获取预定时间范围内待分配的数据增量总量、第一数量和第一数据增量最小值,其中第一数量为预定时间范围所包括的第一时间段的数量,并将分配次数初始化为1。在该实施方式中,预定时间范围为2016年12月这1个月,第一时间段对应以1小时为时间区间所划分出来的时间段,则第一数量为(31-1+1)×24=744,其含义为12月中包括了744个小时,待分配的数据增量总量为87530,第一数据增量最小值优选为20。下一步,计算第一数量与分配次数的第一差值,得到第一差值为744-1=743,并将第一差值与第一数据增量最小值相乘,将待分配的数据增量总量与该相乘结果的第二差值作为第一数据增量最大值,得到第一数据增量最大值为87530-743×20=72670,再将第一差值与2的商取整作为切分比率,则切分比率为在得到切分比率之后,需要执行相关的判断操作,即判断第一数据增量最大值与第一数据增量最小值是否相等或切分比率是否为0,若第一数据增量最大值与第一数据增量最小值相等,或者,切分比率为0,则将切分比率更新为1,否则对切分比率不作处理。由于第一数据增量最大值与第一数据增量最小值不相等且切分比率也不等于0,因此切分比率保持371不变。
随后,将第一数据增量最大值更新为第一数据增量最大值与切分比率的商取整后的值,可得第一数据增量最大值为随机生成位于第一数据增量最小值20和第一数据增量最大值195之间的一个整数作为第一数据增量,可得该第一数据增量为90,将当前分配次数所对应的第一时间段2016120100与该第一数据增量90相关联的存储到数据增量字典中,即对应表1中的第一行数据。将待分配的数据增量总量更新为待分配的数据增量总量与第一数据增量的差值,此时待分配的数据增量总量为87530-90=87440,将分配次数增加1,则分配次数为2。当分配次数小于第一数量时,继续执行从计算第一差值开始的步骤,由上可知分配次数为2,小于744,则继续执行从计算第一差值开始的步骤。最后,当分配次数等于第一数量时,将当前分配次数所对应的第一时间段与待分配的数据增量总量相关联的存储到数据增量字典中,即当分配次数等于744时,说明这一次分配是最后一次分配,直接将当前分配次数所对应的第一时间段2016123123与待分配的数据增量总量70相关联的存储到数据增量字典即可,即对应表1中的最后一行数据。关于预先生成数据增量字典的关键性代码如下所示:
int min=20;
int max;
int i=1;
while(i<number)
{max=total-min*(number-i);
int k=(int)(number-i)/2;
if(max==min||k==0)
{k=1;
}
max=max/k;
result=(int)rand.Next(min,max+1);
total=(int)(total-result);
dic.Add(startDate,result);
i++;
}
图5示出了根据本发明一个实施例的网络服务器200的结构框图。在基本的配置202中,网络服务器200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上利用程序数据224进行操作。
网络服务器200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他可网络通信的设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。在一些实施例中,网络服务器200被配置为执行根据本发明的数据处理方法400。应用222包括根据本发明的数据处理装置500和数据存储设备600。
图6示出了根据本发明一个实施例的数据处理装置500的示意图。如图6所示,数据处理装置500和数据存储设备600驻留在网络服务器200中,网络服务器200与客户端300通信连接,数据处理装置500包括接收模块510、获取模块520、波动值调整器530、波动发生器540、更新模块550和发送模块560,数据存储设备600存储有数据增量字典,数据增量字典包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量,其中每个第一时间段包括第二数量个第二时间段。
接收模块510适于接收客户端300访问请求并获取该请求对应的当前时间。
获取模块520与接收模块510相连,适于从数据存储设备600存储的数据增量字典中,获取与当前时间所属的第一时间段对应的第一数据增量。
波动值调整器530分别与接收模块510和获取模块520相连,适于获取从接收模块510所得到的当前时间所属的第二时间段对应的数据增量上限值。波动值调整器530进一步适于当第一数据增量不大于第一阈值时,将数据增量上限值设置为预定值;当第一数据增量大于第一阈值时,获取到当前时间为止、第一数据增量中的已分配数据增量,根据第一数据增量、已分配数据增量和当前时间,调整数据增量上限值。波动值调整器530进一步适于获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号;将第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量;计算序号与第二数量的商,将商与未分配数据增量的乘积取整作为数据增量上限值;计算第二数量与序号的差值,计算未分配数据增量与该差值的商,并将未分配数据增量与该商相除得到的商取整作为数据增量下限值;当数据增量上限值小于数据增量下限值时,将数据增量上限值更新为数据增量下限值。
波动发生器540分别与接收模块510、获取模块520和波动值调整器530分别相连,适于根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量。波动发生器540进一步适于获取到当前时间为止、第一数据增量中对应的已分配数据增量,将第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量,并将第二数据增量最大值初始化为未分配数据增量;获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号,将第二数量与序号的差值作为第三数量,第三数量为当前时间所属的第一时间段包括的未分配第二数据增量的第二时间段的数量;计算第二数据增量最大值与第三数量的商,将该商与100的乘积作为发散指数;若发散指数不小于100,则计算第二数据增量最大值与第三数量的商,并将第二数据增量最大值与该商相除得到的商取整作为第二数据增量最小值;计算第三数量与第二数量之间的比值,将1与该比值的差值作为等比倍率,并将第二数据增量最小值更新为其与等比倍率的乘积,将第二数据增量最大值更新为其与等比倍率的乘积;随机生成位于第二数据增量最小值和第二数据增量最大值之间的一个整数作为分配给第二时间段对应的第二数据增量。波动发生器540进一步适于当第二数据增量最大值大于数据增量上限值时,将第二数据增量最大值更新为数据增量上限值。波动发生器540进一步适于当发散指数小于100时,在1至100的数值范围内随机生成一个整数作为命中率;当命中率不大于发散指数时,将第二数据增量最大值更新为其与2的商取整后的值,并随机生成位于1和第二数据增量最大值之间的一个整数作为分配给第二时间段对应的第二数据增量;当命中率大于发散指数时,将分配给第二时间段对应的第二数据增量设置为0。
更新模块550与波动发生器540相连,适于根据第二数据增量更新当前数据总量。
发送模块560与更新模块550相连,适于将更新后的当前数据总量发送给客户端300。
图7示出了根据本发明又一个实施例的数据处理装置700的示意图。如图7所示,数据处理装置700和数据存储设备600驻留在网络服务器200中,网络服务器200与客户端300通信连接。数据处理装置700的接收模块710、获取模块720、波动值调整器730、波动发生器740和更新模块750,分别与图6中数据处理装置500的接收模块510、获取模块520、波动值调整器530、波动发生器540和更新模块550一一对应,是一致的,而发送模块760和发送模块660相比有所不同,并新增了增量调整器770。
发送模块760分别与接收模块710和更新模块750相连,还适于当当前时间所属的第一时间段处于第一时间范围时,直接将当前数据总量发送给客户端300。增量调整器770分别与获取模块720、波动值调整器730和波动发生器740相连,适于当当前时间所属的第一时间段处于第二时间范围时,获取该第一时间段在第一时间范围中所对应的时间段;获取数据增量字典中该时间段对应的第一数据增量,将该第一数据增量除以2作为增量调整量;将当前时间所属的第一时间段对应的第一数据增量更新为其与增量调整量之和。
图8示出了根据本发明又一个实施例的数据处理装置800的示意图。如图8所示,数据处理装置800和数据存储设备600驻留在网络服务器200中,网络服务器200与客户端300通信连接。数据处理装置800的接收模块810、获取模块820、波动值调整器830、波动发生器840、更新模块850和发送模块860,分别与图6中数据处理装置500的接收模块510、获取模块520、波动值调整器530、波动发生器540、更新模块550和发送模块560一一对应,是一致的,并新增了预处理模块880。预处理模块880适于预先生成数据增量字典,进一步适于获取预定时间范围内待分配的数据增量总量、第一数量和第一数据增量最小值,其中第一数量为预定时间范围所包括的第一时间段的数量,并将分配次数初始化为1;计算第一数量与分配次数的第一差值,将第一差值与第一数据增量最小值相乘,将待分配的数据增量总量与该相乘结果的第二差值作为第一数据增量最大值,并将第一差值与2的商取整作为切分比率;将第一数据增量最大值更新为第一数据增量最大值与切分比率的商取整后的值,随机生成位于第一数据增量最小值和第一数据增量最大值之间的一个整数作为第一数据增量,将当前分配次数所对应的第一时间段与该第一数据增量相关联的存储到数据增量字典中;将待分配的数据增量总量更新为待分配的数据增量总量与第一数据增量的差值,将分配次数增加1;当分配次数小于第一数量时,继续执行从计算第一差值开始的步骤,否则将当前分配次数所对应的第一时间段与待分配的数据增量总量相关联的存储到数据增量字典中。预处理模块880进一步适于当第一数据增量最大值与第一数据增量最小值相等,或者,切分比率为0时,将切分比率更新为1。
关于数据处理的具体步骤以及实施例,在基于图2~4的描述中已经详细公开,此处不再赘述。
现有的数据处理方法,在生成模拟访问注册人数时多采用随机数无上限自增法,访问人数会随着访问次数的增加而无限增大,且不能控制每分钟内人数的增加量,以及每月增加量,无法有效控制访问人数的波动率,不能在预估范围内进行波动增长。根据本发明实施例的数据处理的技术方案,网络服务器接收客户端访问请求并获取该请求对应的当前时间,并从数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量,以及获取当前时间所属的第二时间段对应的数据增量上限值,根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给第二时间段对应的第二数据增量,根据第二数据增量更新当前数据总量,并将更新后的当前数据总量发送给客户端。上述技术方案中,在进行数据处理之前,需要预先生成各个第一时间段对应的第一数据增量,并将第一时间段与其对应的第一数据增量相关联的存储到数据增量字典中。在获取数据增量上限值时,会根据第一数据增量与第一阈值的大小关系,对数据增量上限值进行适当调整以提高后续数值计算的可靠性,而在计算第二数据增量时,以发散指数与100的大小关系作为判断依据,对于发散指数不小于100和小于100这两种情况分别计算第二数据增量,最终通过第二数据增量更新当前数据总量并发送客户端,有效控制每个第二时间段内的第二数据增长量及当前数据总量的波动,实现了当前数据总量在一定范围内的波动增长,避免了某个第一时间段或第二时间段出现数据增长特别高的不合理现象。同时,当当前时间处于第二时间范围时,对从数据增量字典获取到的第一数据增量进行数值调整,这一处理是考虑到一些特殊时间范围,比如夜间的数据总量增长不明显或停止增长的情况,从而进一步提高当前数据总量的可信度,以更加符合实际情况。
A8.如A7所述的方法,其中,若当前时间所属的第一时间段处于第二时间范围,所述方法还包括:获取该第一时间段在第一时间范围中所对应的时间段;获取数据增量字典中该时间段对应的第一数据增量,将该第一数据增量除以2作为增量调整量;将当前时间所属的第一时间段对应的第一数据增量更新为其与所述增量调整量之和。
A9.如A1-8中任一项所述的方法,还包括预先生成数据增量字典,所述预先生成数据增量字典的步骤包括:获取预定时间范围内待分配的数据增量总量、所述第一数量和第一数据增量最小值,其中所述第一数量为所述预定时间范围所包括的第一时间段的数量,并将分配次数初始化为1;计算第一数量与分配次数的第一差值,将第一差值与所述第一数据增量最小值相乘,将所述待分配的数据增量总量与该相乘结果的第二差值作为第一数据增量最大值,并将第一差值与2的商取整作为切分比率;将第一数据增量最大值更新为第一数据增量最大值与切分比率的商取整后的值,随机生成位于所述第一数据增量最小值和第一数据增量最大值之间的一个整数作为第一数据增量,将当前分配次数所对应的第一时间段与该第一数据增量相关联的存储到数据增量字典中;将待分配的数据增量总量更新为待分配的数据增量总量与所述第一数据增量的差值,将分配次数增加1;当分配次数小于所述第一数量时,继续执行从计算第一差值开始的步骤,否则将当前分配次数所对应的第一时间段与待分配的数据增量总量相关联的存储到数据增量字典中。
A10.如A9所述的方法,其中,在得到切分比率之后,还包括:若第一数据增量最大值与第一数据增量最小值相等,或者,切分比率为0,则将切分比率更新为1。
B12.如B11所述的装置,其中,所述波动值调整器进一步适于:当所述第一数据增量不大于第一阈值时,将数据增量上限值设置为预定值;当所述第一数据增量大于第一阈值时,获取到当前时间为止、第一数据增量中的已分配数据增量,根据所述第一数据增量、已分配数据增量和当前时间,调整数据增量上限值。
B13.如B12所述的装置,其中,所述波动值调整器进一步适于:获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号;将所述第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量;计算所述序号与第二数量的商,将所述商与所述未分配数据增量的乘积取整作为数据增量上限值;计算第二数量与所述序号的差值,计算所述未分配数据增量与该差值的商,并将所述未分配数据增量与该商相除得到的商取整作为数据增量下限值;当所述数据增量上限值小于所述数据增量下限值时,将所述数据增量上限值更新为所述数据增量下限值。
B14.如B11-13中任一项所述的装置,其中,所述波动发生器进一步适于:获取到当前时间为止、第一数据增量中对应的已分配数据增量,将所述第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量,并将第二数据增量最大值初始化为所述未分配数据增量;获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号,将所述第二数量与所述序号的差值作为第三数量,所述第三数量为当前时间所属的第一时间段包括的未分配第二数据增量的第二时间段的数量;计算所述第二数据增量最大值与所述第三数量的商,将该商与100的乘积作为发散指数;当所述发散指数不小于100时,计算所述第二数据增量最大值与第三数量的商,并将所述第二数据增量最大值与该商相除得到的商取整作为第二数据增量最小值;计算所述第三数量与所述第二数量之间的比值,将1与该比值的差值作为等比倍率,并将第二数据增量最小值更新为其与所述等比倍率的乘积,将第二数据增量最大值更新为其与所述等比倍率的乘积;随机生成位于所述第二数据增量最小值和第二数据增量最大值之间的一个整数作为分配给所述第二时间段对应的第二数据增量。
B15.如B14所述的装置,其中,所述波动发生器进一步适于:当所述第二数据增量最大值大于所述数据增量上限值时,将所述第二数据增量最大值更新为所述数据增量上限值。
B16.如B14或15所述的装置,其中,所述波动发生器进一步适于:当所述发散指数小于100时,在1至100的数值范围内随机生成一个整数作为命中率;当所述命中率不大于所述发散指数时,将所述第二数据增量最大值更新为其与2的商取整后的值,并随机生成位于1和所述第二数据增量最大值之间的一个整数作为分配给所述第二时间段对应的第二数据增量;当所述命中率大于所述发散指数时,将分配给所述第二时间段对应的第二数据增量设置为0。
B17.如B11-16中任一项所述的装置,其中,所述发送模块还适于:当当前时间所属的第一时间段处于第一时间范围时,直接将当前数据总量发送给所述客户端。
B18.如B17所述的装置,其中,还包括增量调整器,适于:当当前时间所属的第一时间段处于第二时间范围时,获取该第一时间段在第一时间范围中所对应的时间段;获取数据增量字典中该时间段对应的第一数据增量,将该第一数据增量除以2作为增量调整量;将当前时间所属的第一时间段对应的第一数据增量更新为其与所述增量调整量之和。
B19.如B11-18中任一项所述的装置,还包括预处理模块,适于预先生成数据增量字典,所述预处理模块进一步适于:获取预定时间范围内待分配的数据增量总量、所述第一数量和第一数据增量最小值,其中所述第一数量为所述预定时间范围所包括的第一时间段的数量,并将分配次数初始化为1;计算第一数量与分配次数的第一差值,将第一差值与所述第一数据增量最小值相乘,将所述待分配的数据增量总量与该相乘结果的第二差值作为第一数据增量最大值,并将第一差值与2的商取整作为切分比率;将第一数据增量最大值更新为第一数据增量最大值与切分比率的商取整后的值,随机生成位于所述第一数据增量最小值和第一数据增量最大值之间的一个整数作为第一数据增量,将当前分配次数所对应的第一时间段与该第一数据增量相关联的存储到数据增量字典中;将待分配的数据增量总量更新为待分配的数据增量总量与所述第一数据增量的差值,将分配次数增加1;当分配次数小于所述第一数量时,继续执行从计算第一差值开始的步骤,否则将当前分配次数所对应的第一时间段与待分配的数据增量总量相关联的存储到数据增量字典中。
B20.如B19所述的装置,其中,所述预处理模块进一步适于:当第一数据增量最大值与第一数据增量最小值相等,或者,切分比率为0时,将切分比率更新为1。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的数据处理方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (22)
1.一种数据处理方法,适于在网络服务器中执行,所述网络服务器与客户端通信连接,所述网络服务器包括数据存储设备,所述数据存储设备中存储有数据增量字典,所述数据增量字典包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量,其中每个第一时间段包括第二数量个第二时间段,所述方法包括:
接收当用户进入客户端的活动提交表单页时、所述客户端发送的访问请求,并获取该请求对应的当前时间;
从所述数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量;
获取当前时间所属的第二时间段对应的数据增量上限值;
根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给所述第二时间段对应的第二数据增量;以及
根据所述第二数据增量更新当前数据总量,并将更新后的当前数据总量发送给所述客户端,由所述客户端在所述活动提交表单页中向用户显示所述当前数据总量,作为当前访问注册的人数总量。
2.如权利要求1所述的方法,其中,所述获取当前时间所属的第二时间段对应的数据增量上限值包括:
若所述第一数据增量不大于第一阈值,则将数据增量上限值设置为预定值;
若所述第一数据增量大于第一阈值,则获取到当前时间为止、第一数据增量中的已分配数据增量,根据所述第一数据增量、已分配数据增量和当前时间,调整数据增量上限值。
3.如权利要求2所述的方法,其中,所述调整数据增量上限值包括:
获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号;
将所述第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量;
计算所述序号与第二数量的商,将所述商与所述未分配数据增量的乘积取整作为数据增量上限值;
计算第二数量与所述序号的差值,计算所述未分配数据增量与该差值的商,并将所述未分配数据增量与该商相除得到的商取整作为数据增量下限值;
若所述数据增量上限值小于所述数据增量下限值,则将所述数据增量上限值更新为所述数据增量下限值。
4.如权利要求1-3中任一项所述的方法,其中,所述计算分配给所述第二时间段对应的第二数据增量包括:
获取到当前时间为止、第一数据增量中的已分配数据增量,将所述第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量,并将第二数据增量最大值初始化为所述未分配数据增量;
获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号,将所述第二数量与所述序号的差值作为第三数量;
计算所述第二数据增量最大值与所述第三数量的商,将该商与100的乘积作为发散指数;
若所述发散指数不小于100,则计算所述第二数据增量最大值与第三数量的商,并将所述第二数据增量最大值与该商相除得到的商取整作为第二数据增量最小值;
计算所述第三数量与所述第二数量之间的比值,将1与该比值的差值作为等比倍率,并将第二数据增量最小值更新为其与所述等比倍率的乘积,将第二数据增量最大值更新为其与所述等比倍率的乘积;
随机生成位于所述第二数据增量最小值和第二数据增量最大值之间的一个整数作为分配给所述第二时间段对应的第二数据增量。
5.如权利要求4所述的方法,其中,在得到第二数据增量最小值之后,还包括:
若所述第二数据增量最大值大于所述数据增量上限值,则将所述第二数据增量最大值更新为所述数据增量上限值。
6.如权利要求5所述的方法,其中,还包括:
若所述发散指数小于100,则在1至100的数值范围内随机生成一个整数作为命中率;
若所述命中率不大于所述发散指数,则将所述第二数据增量最大值更新为其与2的商取整后的值,并随机生成位于1和所述第二数据增量最大值之间的一个整数作为分配给所述第二时间段对应的第二数据增量;
若所述命中率大于所述发散指数,则将分配给所述第二时间段对应的第二数据增量设置为0。
7.如权利要求1-3中任一项所述的方法,还包括:
若当前时间所属的第一时间段处于第一时间范围,则直接将当前数据总量发送给所述客户端。
8.如权利要求7所述的方法,其中,若当前时间所属的第一时间段处于第二时间范围,所述方法还包括:
获取该第一时间段在第一时间范围中所对应的时间段;
获取数据增量字典中该时间段对应的第一数据增量,将该第一数据增量除以2作为增量调整量;
将当前时间所属的第一时间段对应的第一数据增量更新为其与所述增量调整量之和。
9.如权利要求1-3中任一项所述的方法,还包括预先生成数据增量字典,所述预先生成数据增量字典的步骤包括:
获取预定时间范围内待分配的数据增量总量、所述第一数量和第一数据增量最小值,其中所述第一数量为所述预定时间范围所包括的第一时间段的数量,并将分配次数初始化为1;
计算第一数量与分配次数的第一差值,将第一差值与所述第一数据增量最小值相乘,将所述待分配的数据增量总量与该相乘结果的第二差值作为第一数据增量最大值,并将第一差值与2的商取整作为切分比率;
将第一数据增量最大值更新为第一数据增量最大值与切分比率的商取整后的值,随机生成位于所述第一数据增量最小值和第一数据增量最大值之间的一个整数作为第一数据增量,将当前分配次数所对应的第一时间段与该第一数据增量相关联的存储到数据增量字典中;
将待分配的数据增量总量更新为待分配的数据增量总量与所述第一数据增量的差值,将分配次数增加1;
当分配次数小于所述第一数量时,继续执行从计算第一差值开始的步骤,否则将当前分配次数所对应的第一时间段与待分配的数据增量总量相关联的存储到数据增量字典中。
10.如权利要求9所述的方法,其中,在得到切分比率之后,还包括:
若第一数据增量最大值与第一数据增量最小值相等,或者,切分比率为0,则将切分比率更新为1。
11.一种数据处理装置,适于驻留在网络服务器中,所述网络服务器与客户端通信连接,所述网络服务器包括数据存储设备,所述数据存储设备中存储有数据增量字典,所述数据增量字典包括第一数量个第一时间段和分别与各第一时间段相关联的第一数据增量,其中每个第一时间段包括第二数量个第二时间段,所述装置包括:
接收模块,适于接收当用户进入客户端的活动提交表单页时、所述客户端发送的访问请求并获取该请求对应的当前时间;
获取模块,适于从所述数据增量字典中获取与当前时间所属的第一时间段对应的第一数据增量;
波动值调整器,适于获取当前时间所属的第二时间段对应的数据增量上限值;
波动发生器,适于根据当前时间、所获取的第一数据增量和数据增量上限值,计算分配给所述第二时间段对应的第二数据增量;
更新模块,适于根据所述第二数据增量更新当前数据总量;以及
发送模块,适于将更新后的当前数据总量发送给所述客户端,由所述客户端在所述活动提交表单页中向用户显示所述当前数据总量,作为当前访问注册的人数总量。
12.如权利要求11所述的装置,其中,所述波动值调整器进一步适于:
当所述第一数据增量不大于第一阈值时,将数据增量上限值设置为预定值;
当所述第一数据增量大于第一阈值时,获取到当前时间为止、第一数据增量中的已分配数据增量,根据所述第一数据增量、已分配数据增量和当前时间,调整数据增量上限值。
13.如权利要求12所述的装置,其中,所述波动值调整器进一步适于:
获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号;
将所述第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量;
计算所述序号与第二数量的商,将所述商与所述未分配数据增量的乘积取整作为数据增量上限值;
计算第二数量与所述序号的差值,计算所述未分配数据增量与该差值的商,并将所述未分配数据增量与该商相除得到的商取整作为数据增量下限值;
当所述数据增量上限值小于所述数据增量下限值时,将所述数据增量上限值更新为所述数据增量下限值。
14.如权利要求11-13中任一项所述的装置,其中,所述波动发生器进一步适于:
获取到当前时间为止、第一数据增量中对应的已分配数据增量,将所述第一数据增量与已分配数据增量的差值作为当前时间对应的未分配数据增量,并将第二数据增量最大值初始化为所述未分配数据增量;
获取当前时间所属的第二时间段在当前时间所属的第一时间段中排列的序号,将所述第二数量与所述序号的差值作为第三数量,所述第三数量为当前时间所属的第一时间段包括的未分配第二数据增量的第二时间段的数量;
计算所述第二数据增量最大值与所述第三数量的商,将该商与100的乘积作为发散指数;
当所述发散指数不小于100时,计算所述第二数据增量最大值与第三数量的商,并将所述第二数据增量最大值与该商相除得到的商取整作为第二数据增量最小值;
计算所述第三数量与所述第二数量之间的比值,将1与该比值的差值作为等比倍率,并将第二数据增量最小值更新为其与所述等比倍率的乘积,将第二数据增量最大值更新为其与所述等比倍率的乘积;
随机生成位于所述第二数据增量最小值和第二数据增量最大值之间的一个整数作为分配给所述第二时间段对应的第二数据增量。
15.如权利要求14所述的装置,其中,所述波动发生器进一步适于:
当所述第二数据增量最大值大于所述数据增量上限值时,将所述第二数据增量最大值更新为所述数据增量上限值。
16.如权利要求15所述的装置,其中,所述波动发生器进一步适于:
当所述发散指数小于100时,在1至100的数值范围内随机生成一个整数作为命中率;
当所述命中率不大于所述发散指数时,将所述第二数据增量最大值更新为其与2的商取整后的值,并随机生成位于1和所述第二数据增量最大值之间的一个整数作为分配给所述第二时间段对应的第二数据增量;
当所述命中率大于所述发散指数时,将分配给所述第二时间段对应的第二数据增量设置为0。
17.如权利要求11-13中任一项所述的装置,其中,所述发送模块还适于:
当当前时间所属的第一时间段处于第一时间范围时,直接将当前数据总量发送给所述客户端。
18.如权利要求17所述的装置,其中,还包括增量调整器,适于:
当当前时间所属的第一时间段处于第二时间范围时,获取该第一时间段在第一时间范围中所对应的时间段;
获取数据增量字典中该时间段对应的第一数据增量,将该第一数据增量除以2作为增量调整量;
将当前时间所属的第一时间段对应的第一数据增量更新为其与所述增量调整量之和。
19.如权利要求11-13中任一项所述的装置,还包括预处理模块,适于预先生成数据增量字典,所述预处理模块进一步适于:
获取预定时间范围内待分配的数据增量总量、所述第一数量和第一数据增量最小值,其中所述第一数量为所述预定时间范围所包括的第一时间段的数量,并将分配次数初始化为1;
计算第一数量与分配次数的第一差值,将第一差值与所述第一数据增量最小值相乘,将所述待分配的数据增量总量与该相乘结果的第二差值作为第一数据增量最大值,并将第一差值与2的商取整作为切分比率;
将第一数据增量最大值更新为第一数据增量最大值与切分比率的商取整后的值,随机生成位于所述第一数据增量最小值和第一数据增量最大值之间的一个整数作为第一数据增量,将当前分配次数所对应的第一时间段与该第一数据增量相关联的存储到数据增量字典中;
将待分配的数据增量总量更新为待分配的数据增量总量与所述第一数据增量的差值,将分配次数增加1;
当分配次数小于所述第一数量时,继续执行从计算第一差值开始的步骤,否则将当前分配次数所对应的第一时间段与待分配的数据增量总量相关联的存储到数据增量字典中。
20.如权利要求19所述的装置,其中,所述预处理模块进一步适于:
当第一数据增量最大值与第一数据增量最小值相等,或者,切分比率为0时,将切分比率更新为1。
21.一种网络服务器,包括如权利要求11-20中任一项所述的数据处理装置和数据存储设备。
22.一种计算设备,包括:
至少一个处理器;以及
包括计算机程序指令的至少一个存储器;
所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使得所述计算设备执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710132093.7A CN106844778B (zh) | 2017-03-07 | 2017-03-07 | 一种数据处理方法、装置及网络服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710132093.7A CN106844778B (zh) | 2017-03-07 | 2017-03-07 | 一种数据处理方法、装置及网络服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844778A CN106844778A (zh) | 2017-06-13 |
CN106844778B true CN106844778B (zh) | 2020-09-01 |
Family
ID=59137331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710132093.7A Active CN106844778B (zh) | 2017-03-07 | 2017-03-07 | 一种数据处理方法、装置及网络服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844778B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107967361B (zh) * | 2017-12-22 | 2019-05-10 | 北京明朝万达科技股份有限公司 | 一种数据库的增量处理方法和系统 |
CN109657183B (zh) * | 2018-12-18 | 2020-11-10 | 北京字节跳动网络技术有限公司 | 用于处理信息的方法和装置 |
CN110772797B (zh) * | 2019-10-29 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、服务器及可存储介质 |
CN112150557B (zh) * | 2020-09-14 | 2024-04-19 | 阿波罗智联(北京)科技有限公司 | 用于路侧感知相机数据流的众数获取方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848116A (zh) * | 2010-04-21 | 2010-09-29 | 中国海洋大学 | 一种简单快捷自动的Web服务器压力测试方法 |
CN103581333A (zh) * | 2013-11-13 | 2014-02-12 | 复旦大学 | 基于前馈和反馈控制的运行时虚拟资源动态分配方法和系统 |
CN104615453A (zh) * | 2014-09-26 | 2015-05-13 | 腾讯科技(深圳)有限公司 | 一种地图数据处理方法、装置及系统 |
CN105959728A (zh) * | 2016-06-27 | 2016-09-21 | 武汉斗鱼网络科技有限公司 | 统计直播平台在线人数的系统及其方法 |
CN105989072A (zh) * | 2015-02-10 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 去重计数方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763491B2 (en) * | 2001-02-07 | 2004-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and systems for avoiding unnecessary retransmissions associated with automatic retransmission query schemes in radiocommunication systems |
-
2017
- 2017-03-07 CN CN201710132093.7A patent/CN106844778B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848116A (zh) * | 2010-04-21 | 2010-09-29 | 中国海洋大学 | 一种简单快捷自动的Web服务器压力测试方法 |
CN103581333A (zh) * | 2013-11-13 | 2014-02-12 | 复旦大学 | 基于前馈和反馈控制的运行时虚拟资源动态分配方法和系统 |
CN104615453A (zh) * | 2014-09-26 | 2015-05-13 | 腾讯科技(深圳)有限公司 | 一种地图数据处理方法、装置及系统 |
CN105989072A (zh) * | 2015-02-10 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 去重计数方法及设备 |
CN105959728A (zh) * | 2016-06-27 | 2016-09-21 | 武汉斗鱼网络科技有限公司 | 统计直播平台在线人数的系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106844778A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844778B (zh) | 一种数据处理方法、装置及网络服务器 | |
CN109117953B (zh) | 网络参数训练方法和系统、服务器、客户端及存储介质 | |
KR101607534B1 (ko) | 사용자 매칭 방법 및 시스템 | |
CN105915438B (zh) | 消息推送方法、装置及系统 | |
US8214492B2 (en) | Method and system for adapting a session timeout period | |
JP6522160B2 (ja) | 情報配信方法、ならびに装置、サーバ、および記憶媒体 | |
CN109918630A (zh) | 文本生成方法、装置、计算机设备及存储介质 | |
CN108924213A (zh) | 一种服务器的qps控制方法、装置及电子设备 | |
KR101179974B1 (ko) | 부하 분산방법, 부하 분산프로그램, 및 부하 분산장치 | |
CN110532465A (zh) | 一种网站内容的推荐方法及推荐系统 | |
CN110732140A (zh) | 游戏奖励实现方法及装置 | |
CN112418899A (zh) | 广告位的显示控制方法及装置 | |
CN112221151B (zh) | 一种地图生成方法、装置、计算机设备及存储介质 | |
CN111813902A (zh) | 智能应答方法、系统及计算设备 | |
US20080275790A1 (en) | Bid groups for online auctions | |
CN109327494B (zh) | 一种面向多任务合作应用的服务质量自适应激励方法 | |
CN109543928B (zh) | 信息输出方法和装置 | |
CN103516618A (zh) | 一种信息投放方法、系统及相关装置 | |
CN109493025B (zh) | 一种账号生成方法及装置 | |
CN113780415A (zh) | 基于小程序游戏的用户画像生成方法、装置、设备及介质 | |
CN114268994A (zh) | 一种基于价格的移动边缘计算网络分布式卸载方法及装置 | |
CN114567601A (zh) | 一种流量的限制方法及系统 | |
CN103516624B (zh) | 网络资源分配方法及装置 | |
CN106875029B (zh) | 一种资源对象信息推送方法及装置 | |
CN117950879B (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 |