榜单刷新方法、装置及服务端转让专利

申请号 : CN201610640064.7

文献号 : CN106294691B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 洪兴海莫仕豪

申请人 : 广州交易猫信息技术有限公司

摘要 :

本发明提供了一种榜单刷新方法、装置及服务端,该榜单刷新方法包括:接收对榜单进行刷新的请求;根据前一预定时间内的请求总和的赋值,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。本榜单刷新方法、装置及服务端可以根据系统请求的数量,实时的调整榜单的生成频率,保证系统的稳定,使榜单生成更具实时性。

权利要求 :

1.一种榜单刷新方法,其特征在于,所述方法包括:

接收对榜单进行刷新的请求;

计算最新接收到请求的时间与启动时间的差值,其中,启动时间是前一预定时间的开始时间;

当最新接收到请求的时间与启动时间的差值在第一时间范围内时,对前一预定时间内对应的请求总和的赋值进行更新,更新后的赋值为最新接收到请求的时间之前累加的请求总和,将启动时间更新为最新接收到请求的时间;

当最新接收到请求的时间与启动时间的差值在第二时间范围内时,对前一预定时间内对应的请求总和的赋值进行更新,更新后的赋值为零,将启动时间更新为最新接收到请求的时间;

根据前一预定时间内的请求总和的赋值,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。

2.根据权利要求1所述的榜单刷新方法,其特征在于,所述方法包括:

当前一预定时间内的请求总和的赋值在第一范围内时,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单。

3.根据权利要求1所述的榜单刷新方法,其特征在于,所述暂存区包括第一暂存区,所述方法包括:当前一预定时间内的请求总和的赋值在第二范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第一暂存区,当所述第一暂存区饱和,合并所述第一暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。

4.根据权利要求3所述的榜单刷新方法,其特征在于,所述暂存区还包括第二暂存区,所述第二暂存区的长度大于所述第一暂存区的长度,所述方法包括:当前一预定时间内的请求总和的赋值在第三范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第二暂存区,当所述第二暂存区饱和,合并所述第二暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。

5.根据权利要求1所述的榜单刷新方法,其特征在于,所述方法包括:

响应定时时间触发,利用暂存区内的请求刷新榜单。

6.一种榜单刷新装置,其特征在于,所述装置包括:

接收模块,用于接收对榜单进行刷新的请求;

赋值更新模块,用于计算最新接收到请求的时间与启动时间的差值,其中,启动时间是前一预定时间的开始时间;当最新接收到请求的时间与启动时间的差值在第一时间范围内时,对前一预定时间内对应的请求总和的赋值进行更新,更新后的赋值为最新接收到请求的时间之前累加的请求总和;当最新接收到请求的时间与启动时间的差值在第二时间范围内时,对前一预定时间内对应的请求总和的赋值进行更新,更新后的赋值为零;

时间更新模块,用于当最新接收到请求的时间与启动时间的差值在第一时间范围内时,将启动时间更新为最新接收到请求的时间;当最新接收到请求的时间与启动时间的差值在第二时间范围内时,将启动时间更新为最新接收到请求的时间;

刷新模块,用于根据前一预定时间内的请求总和的赋值,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。

7.根据权利要求6所述的榜单刷新装置,其特征在于,所述刷新模块用于在前一预定时间内的请求总和的赋值在第一范围内时,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单。

8.根据权利要求6所述的榜单刷新装置,其特征在于,所述暂存区包括第一暂存区,所述刷新模块用于在前一预定时间内的请求总和的赋值在第二范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第一暂存区,以及在所述第一暂存区饱和时,合并所述第一暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。

9.根据权利要求8所述的榜单刷新装置,其特征在于,所述暂存区还包括第二暂存区,所述第二暂存区的长度大于所述第一暂存区的长度,所述刷新模块用于在前一预定时间内的请求总和在第三范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第二暂存区,以及在所述第二暂存区饱和时,合并所述第二暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。

10.根据权利要求6所述的榜单刷新装置,其特征在于,所述刷新模块还用于响应定时时间触发,利用暂存区内的请求刷新榜单。

11.一种服务端,其特征在于,所述服务端包括:

存储器;

处理器;以及

榜单刷新装置,所述榜单刷新装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块,所述榜单刷新装置包括:接收模块,用于接收对榜单进行刷新的请求;

赋值更新模块,用于计算最新接收到请求的时间与启动时间的差值,其中,启动时间是前一预定时间的开始时间;当最新接收到请求的时间与启动时间的差值在第一时间范围内时,对前一预定时间内对应的请求总和的赋值进行更新,更新后的赋值为最新接收到请求的时间之前累加的请求总和;当最新接收到请求的时间与启动时间的差值在第二时间范围内时,对前一预定时间内对应的请求总和的赋值进行更新,更新后的赋值为零;

时间更新模块,用于当最新接收到请求的时间与启动时间的差值在第一时间范围内时,将启动时间更新为最新接收到请求的时间;当最新接收到请求的时间与启动时间的差值在第二时间范围内时,将启动时间更新为最新接收到请求的时间;

刷新模块,用于根据前一预定时间内的请求总和的赋值,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。

说明书 :

榜单刷新方法、装置及服务端

技术领域

[0001] 本发明涉及互联网领域,具体而言,涉及一种榜单刷新方法、装置及服务端。

背景技术

[0002] 随着互联网的快速发展,互联网上各种榜单投票成为热点,榜单是按照分数给某些ID投票形成的票数排序单,ID可以是人、作品等,票数可以体现为ID的评论、礼物或者其他能够增长的形态,用户通过投票使榜单上的ID名次发生变化。由于受限于大数据和请求刷榜的请求量问题,现有技术中,很多榜单都是通过后台定时异步计算生成的,即每隔一段时间将该段时间范围内的全部请求进行榜单的刷新,这种方式用户的实时体验感较差,比如用户向某主播送礼的时候,需要能实时更新用户对主播贡献的排行榜单,这样才能对主播和用户起到更直接的激励效果。榜单的实时生成,在触发生成次数过于密集时容易带来服务器性能波动和不稳定,影响整个系统的体验。

发明内容

[0003] 有鉴于此,本发明的目的在于提供一种榜单刷新方法、装置及服务端,以提高在高并发环境下,榜单的准实时更新和系统的稳定性。
[0004] 为了实现上述目的,本发明实施例采用的技术方案如下:
[0005] 第一方面,本发明提供了一种榜单刷新方法,所述方法包括:
[0006] 接收对榜单进行刷新的请求;
[0007] 根据前一预定时间内的请求总和的赋值,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。
[0008] 优选地,所述方法包括:
[0009] 当最新接受到请求的时间与启动时间的差值在第一时间范围内时,将启动时间更新为最新接受到请求的时间;
[0010] 对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为最新接受到请求的时间之前累加的请求总和;
[0011] 根据所述更新后的赋值,利用最新接受到的请求刷新榜单或者将最新接收到的请求存入暂存区。
[0012] 优选地,所述方法包括:
[0013] 当最新请求的时间与启动时间的差值大于第二时间范围内时,将启动时间更新为所述最新请求的时间;
[0014] 对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为零;
[0015] 利用最新接受到的请求刷新榜单。
[0016] 优选地,所述方法包括:
[0017] 当前一预定时间内的请求总和的赋值在第一范围内时,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单。
[0018] 优选地,所述暂存区包括第一暂存区,所述方法包括:
[0019] 当前一预定时间内的请求总和的赋值在第二范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第一暂存区,当所述第一暂存区饱和,合并所述第一暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。
[0020] 优选地,所述暂存区还包括第二暂存区,所述第二暂存区的长度大于所述第一暂存区的长度,所述方法包括:
[0021] 当前一预定时间内的请求总和的赋值在第三范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第二暂存区,当所述第二暂存区饱和,合并所述第二暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。
[0022] 优选地,所述方法包括:
[0023] 响应定时时间触发,利用暂存区内的请求刷新榜单。
[0024] 另一方面,本发明提供了一种榜单刷新装置,所述装置包括:
[0025] 接收模块,用于接收对榜单进行刷新的请求;
[0026] 刷新模块,用于根据前一预定时间内的请求总和的赋值,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。
[0027] 优选地,所述装置还包括:
[0028] 时间更新模块,用于当最新接受到请求的时间与启动时间的差值在第一时间范围内时,将启动时间更新为最新接受到请求的时间;
[0029] 赋值更新模块,用于对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为最新接受到请求的时间为止累加的请求总和;
[0030] 所述刷新模块还用于根据所述更新后的赋值,利用最新接受到请求刷新榜单或者将最新接收到的请求存入暂存区。
[0031] 优选地,所述装置还包括:
[0032] 时间更新模块,用于当最新请求的时间与启动时间的差值大于第二时间范围内时,将启动时间更新为所述最新请求的时间;
[0033] 赋值更新模块,用于对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为零;
[0034] 所述刷新模块还用于在前一预定时间内对应的请求总和的赋值为零时利用最新接受到请求刷新榜单。
[0035] 优选地,所述刷新模块用于在前一预定时间内的请求总和的赋值在第一范围内时,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单。
[0036] 优选地,所述暂存区包括第一暂存区,所述刷新模块用于在前一预定时间内的请求总和的赋值在第二范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第一暂存区,以及
[0037] 在所述第一暂存区饱和时,合并所述第一暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。
[0038] 优选地,所述暂存区还包括第二暂存区,所述第二暂存区的长度大于所述第一暂存区的长度,所述刷新模块用于在前一预定时间内的请求总和在第三范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第二暂存区,以及
[0039] 在所述第二暂存区饱和时,合并所述第二暂存区内的请求得到请求总和,并利用合并后的请求总和刷新榜单。
[0040] 优选地,所述刷新模块还用于响应定时时间触发,利用暂存区内的请求刷新榜单。
[0041] 第三方面,本发明还提供了一种服务端,所述服务端包括:
[0042] 存储器;
[0043] 处理器;以及
[0044] 榜单刷新装置,所述榜单刷新装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模块,所述榜单刷新装置包括:
[0045] 接收模块,用于接收对榜单进行刷新的请求;
[0046] 刷新模块,用于根据前一预定时间内的请求总和的赋值,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。
[0047] 本发明提供的榜单刷新方法、装置及服务端,服务端在接收到刷新榜单的请求后,会根据前一预定时间的请求总和的赋值决定将与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。根据系统请求的数量,实时的调整榜单的生成频率,保证系统的稳定,使榜单生成更具实时性。

附图说明

[0048] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0049] 图1是是本发明较佳实施例提供的服务端与至少一客户端通信的交互示意图。
[0050] 图2是图1所示的服务端的方框示意图。
[0051] 图3是针对目前支持网络主播的账户排行榜的示意图。
[0052] 图4是本发明较佳实施例提供的应用于图1所示的服务端的榜单刷新方法的流程图。
[0053] 图5是本发明较佳实施例提供的榜单刷新方法的实际应用示例图。
[0054] 图6是本发明较佳实施例提供的榜单刷新装置的功能模块架构示意图。
[0055] 主要元件符号说明:服务端100、榜单刷新装置110、存储器111、处理器112、通信单元113、客户端200、网络300、应用程序400、接收模块601、刷新模块602、时间更新模块603、赋值更新模块604。

具体实施方式

[0056] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057] 本发明实施例提供的榜单刷新方法应用于与多个客户端相互通信的服务端。如图1所示,是本发明较佳实施例提供的服务端100与至少一客户端200通信的交互示意图。所述服务端100可通过网络300与所述客户端200进行通信,以实现服务端100与客户端200之间的数据通信或交互。所述服务端100可以提供至少一个适用于各种操作系统的应用程序(Application,APP)400的安装包供所述客户端200下载。所述客户端200通过所述网络300访问所述服务端100后,可通过所述网络300从服务端100下载适用于该客户端200的操作系统的应用程序400的安装包,以将所述应用程序400安装到所述客户端200中。
[0058] 本实施例中,所述服务端100可以是,但不限于,web(网站)服务器、ftp(file transfer protocol,文件传输协议)服务器等。所述客户端200可以是,但不限于,智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobile Internet device,MID)等。所述网络300可以是,但不限于,有线网络或无线网络。所述客户端200的操作系统可以是,但不限于,安卓(Android)系统、IOS(iPhone operating system)系统、Windows phone系统、Windows系统等。所述应用程序400可以是服务端100提供的任何可供客户端200自定义下载并安装的应用程序,优选地,本实施例中,所述应用程序400为可为不同ID刷新榜单的客户端程序,比如具有不同ID的主播、明星、小说、游戏等榜单,客户端200接收用户刷新榜单的请求以刷新榜单,用户可以通过礼物、评论、投票等方式刷新榜单,本实施例对用户刷新榜单的请求方式不做限定。
[0059] 请参照图2,是图1所示的服务端100的方框示意图。所述服务端100包括榜单刷新装置110、存储器111、处理器112和通信单元113。
[0060] 所述存储器111、处理器112以及通信单元113各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述榜单刷新装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述服务端100的操作系统(operating system,OS)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如所述榜单刷新装置110所包括的软件功能模块及计算机程序等。
[0061] 其中,所述存储器111可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器111用于存储程序,所述处理器112在接收到执行指令后,执行所述程序。所述通信单元113用于通过所述网络300建立所述服务端100与客户端200之间的通信连接,并用于通过所述网络300收发数据。
[0062] 请参照图3,是针对目前支持网络主播的账户排行榜的示意图。用户通过向网络主播赠送礼物或者点赞的方式获得贡献值,榜单系统按照用户的贡献值多少进行排序以生成贡献排行榜,用户可以通过增加赠送礼物以获得更多的贡献值,从而刷新用户在贡献排行榜上的排名,在本示例中,用户赠送礼物即一个刷新榜单的请求。
[0063] 请参照图4,是本发明较佳实施例提供的应用于图1所示的服务端100的榜单刷新方法的流程图。下面对图4所述的具体流程和步骤进行详细阐述。
[0064] 步骤S401:接收对榜单进行刷新的请求。
[0065] 服务端100接收的对榜单进行刷新的请求是客户端200响应用户在客户端200的应用程序上的操作而发送的。比如,用户在客户端200的应用程序上点击赠送礼物,则客户端200响应用户的操作向服务端100发送该赠送礼物的请求。
[0066] 步骤S402:判断最新接收到请求的时间与启动时间的差值的时间范围。
[0067] 由于服务端100同时与多个客户端200通信连接,服务端100在同一时间可能会接收到多个客户端200对榜单进行刷新的请求,当客户端200发送的请求过多,服务端100同时对多个请求进行处理,可能会影响服务端100的处理效率和稳定性。在本实施例中,采用了将时间分段,通过判断上一段时间内接收到的请求总和判断服务端200当前的繁忙程度,以根据服务端200的繁忙程度来决定当前接收到的请求的处理方式,上一段时间的长度通过预先设定。上一段时间的开始时间即为启动时间,该启动时间不是一个固定的时间,而是随着系统当前的请求情况而变化的。
[0068] 在本较佳实施例中,当最新接受到请求的时间与启动时间的差值在第一时间范围内时,执行步骤S403;当最新接受到请求的时间与启动时间的差值在第二时间范围内时,执行步骤S404,当最新接收到请求的时间与启动时间的时间差值的时间范围既不在第一时间范围,也不在第二时间范围,执行步骤S406。
[0069] 步骤S403:对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为最新接受到请求的时间之前累加的请求总和。其后,执行步骤S405。
[0070] 服务端100在接收到请求的时候,会根据上一段时间的请求总和来判断当前接收的请求的处理方式,上一段时间的请求总和通过赋值的方式得到,上一段时间即为前一预定时间,此处所述的前一预定时间的时间长度是变化的,具体的时间长度根据第一时间范围或者第二时间范围的设定长度和最新接收到请求的时间而决定。为了便于理解,请参照图5,设定榜单系统的最初启动时间为0,设定第一时间范围为1s(秒)~2s(不包括2s),由于最初启动时间为0,在0之前没有请求,默认0的“前一预定时间”的赋值为0。服务端100分别在0.3s时收到5个请求,0.5s时收到5个请求、0.7s时收到5个请求、1.5s时收到22个请求,因为0.3s、0.5s、0.7s均小于1s,所以在这三个接收到请求数的时刻均不进行赋值,在0.7s时,请求总和为5+5+5=15个。在0.7s之后,最新接收到请求的时间是1.5s,1.5s在1s~2s的范围内,故而对前一预定时间(这里的前一预定时间即为0~1.5s)的请求总和的赋值进行更新,更新之后的请求总和为5+5+5=15个。本实施例中,第一时间范围设置为1s~2s,最新接收到请求的时间与启动时间之间的时间长度并不长,表明当前用户请求较为活跃,将前一预设时间的请求总和赋值为15个,以根据该赋值决定与前一预设时间连续后一预设时间接收的请求的处理方式。
[0071] 步骤S404:对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为零。其后,执行步骤S405。
[0072] 请继续参考图5,设第二时间范围为2s~∞s,4.1s为系统的一个启动时间,4.1s后,最新的请求时间是7s,由于7s-4.1s=2.9s>2s,符合第二时间范围,则将7s的前一预定时间(这里的前一预定时间即为4.1s~7s)内的请求总和(7个)赋值为零,以供后一连续的预定时间内接收到的请求的处理作为参考,因为服务端100在2.9s内都没有新的请求,表明服务端100当前的繁忙程度较低,故而直接将前一预定时间的请求总和赋值为零。
[0073] 步骤S405:将启动时间更新为最新接收到请求的时间。其后,执行步骤S406。
[0074] 无论最新接收到请求的时间与启动时间的差值的时间范围是第一时间范围还是第二时间范围,均将启动时间更新为最新接收到请求的时间,以进行下一段时间的计算。例如,请参照图5,在1.5s时,最新接收到请求的时间与启动时间的时间差值为1.5s-0s=1.5s,在第一时间范围内,则将1.5s作为新的启动时间。在2.9s时,接收到请求的时间与启动时间的时间差值为2.9s-1.5s=1.4s,在第一时间范围内,则将2.9s作为新的启动时间。
在7s时,接收到请求的时间与启动时间的时间差值为7s-4.1s=2.9s,在第二时间范围内,则将7s作为新的启动时间。通过重新设定启动时间,对时间进行分段处理,后一端时间接收的请求参考前一段时间内的请求总和的赋值进行处理。下面的步骤将对处理的方式进行说明。
[0075] 步骤S406:判断前一预定时间内的请求总和的赋值的范围。
[0076] 服务端100根据判断得到的前一预定时间的请求总和的赋值以决定最新接收到的请求的处理方式。当前一预定时间内的请求总和的赋值在第一范围时,执行步骤S407,当前一预定时间内的请求总和的赋值在第二范围时,执行步骤S408,前一预定时间内的请求总和的赋值在第三范围时,执行步骤S409。
[0077] 步骤407:利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单。
[0078] 在本实施例中,第一范围的取值为0~10。当前一预定时间内的请求总和的赋值在0~10内,表明服务端100当前并不繁忙,则将当前接收到的请求(即与前一预定时间连续的后一预定时间内接收到的请求)直接用于刷新榜单。为了便于理解,请参照图5,在0.3s时,服务端100接收到了5个请求,因为0.3s时的前一预定时间不存在,默认为前一预定时间的请求总和的赋值为0,0位于0~10内,则将0.3s接收的5个请求直接用于刷新榜单。
[0079] 步骤S408:将与前一预定时间连续的后一预定时间内接收到的请求存入第一暂存区。其后执行步骤S410。
[0080] 在本实施例中,暂存区包括第一暂存区,该第二范围的取值为11~100。当前一预定时间内的请求总和的赋值在11~100内,表明服务端100当前较为繁忙,则将当前接收到的请求(即与前一预定时间连续的后一预定时间内接收到的请求)暂时存储在第一暂存区,此处的第一暂存区为缓冲器(buffer),该第一暂存区的长度为4,即第一暂存区能够存储的请求数为4个。为了便于理解,请参照图5,在1.7s时,服务端100接收到了25个请求,由于在1.7s的前一预定时间(即0~1.5s)的请求总和的赋值为15,15位于第二范围,则将1.7s接收到的25个请求依次放入第一暂存区进行暂存,以减轻服务端100当前的负担。当第一暂存区饱和时,即第一暂存区存储的请求数达到上限时,执行步骤S410。
[0081] 步骤S409:将与前一预定时间连续的后一预定时间内接收到的请求存入第二暂存区。其后执行步骤S411。
[0082] 在本实施例中,暂存区还包括第二暂存区,该第三范围的取值为101~∞。当前一预定时间内的请求总和的赋值在101~∞内,表明服务端100当前非常繁忙,容易发生性能拨动和不稳定,此时,将当前接收到的请求(即与前一预定时间连续的后一预定时间内接收到的请求)暂时存储在第二暂存区,需要说明的是,此处的第二暂存区和第一暂存区均为缓冲器(buffer),该缓冲器的长度可以自由变化,该第二暂存区的长度为8,即第二暂存区能够存储的请求数为8个。为了便于理解,请参照图5,在3.1s时,服务端100接收到了1个请求,由于在3.1s的前一预定时间(即1.5~2.9s)的请求总和的赋值为122,122位于第三范围,则将3.1s接收到的1个请求放入第二暂存区进行暂存,以减轻服务端100当前的负担。当第二暂存区饱和时,即第二暂存区存储的请求数达到上限时,执行步骤S411。
[0083] 步骤S410:合并第一暂存区内的请求,并利用合并后的请求刷新榜单。
[0084] 在本实施例中,当第一暂存区内的请求达到4个,则将此4个请求进行合并以刷新榜单,比如S408中所述的在1.7s时的25个请求放入第一暂存区时,每满4个则进行依次刷新,则会进行6次刷新,每次为榜单增加4个请求,服务端100对这25个请求所做的计算次数为6次,相较于传统的实时更新中,一个请求进行一次计算的方式,能够减少19次计算,使服务端100更加轻松,增加稳定性。
[0085] 步骤411:合并第二暂存区内的请求,并利用合并后的请求刷新榜单。
[0086] 第二暂存区的长度大于第一暂存区的长度,能够缓冲更多的请求,适用于服务端100更繁忙的时候,当第二暂存区饱和,合并第二暂存区内的请求,并用合并后的请求刷新榜单。
[0087] 可以理解,为了防止请求长期存储在暂存区造成榜单更新的延误,本发明还可以在步骤S408和S409后直接执行步骤S412:响应定时时间触发,利用第一暂存区或第二暂存区内的请求刷新榜单。
[0088] 由于本实施例提供的方法中,某些时候需要将请求数进行暂存,等暂存区饱和之后再合并暂存区内的请求数以刷新榜单,当暂存区长时间未饱和的时候,暂存区内的请求未能即时地对榜单进行刷新,失去了榜单刷新的准实时性,影响用户的体验。为了便于理解,请参照图5,由于1.5~2.9s之间的请求总和的赋值为122,则2.9~4.1s内的请求将放入第二暂存区,在本实施例中,第二暂存区的长度为8,而2.9~4.1s内的请求数的数量为5,无法将第二暂存区填满,而4.1~7s内的7个请求将直接用于刷新榜单,不会存入暂存区中,故而第二暂存区中的5个请求将在第二暂存区存放至少4.1s。
[0089] 为了解决这一问题,本发明实施例提供的榜单刷新方法设置了一定时脚本,即设定一定时触发时间,当达到定时触发时间时,响应该定时时间触发,将第一暂存区或第二暂存区内残留的请求数用以刷新榜单,以达到对请求的即时处理,保证榜单更新的准实时性。由于服务端100接收到请求的时间的不确定性,在本实施例中,定时脚本的设置由实际应用中的并发请求的时间段和持续长度决定。
[0090] 需要说明的是,上述的各个步骤中,连续的几个步骤实际上可以并行地执行,有时也可以按照相反的顺序执行,这依所涉及的功能而定。比如步骤S403和步骤S405可以是先执行步骤S403,也可以先执行步骤S405。以及步骤S404和步骤S405可以是先执行步骤S404,也可以先执行步骤S405。
[0091] 本发明实施例提供的榜单刷新方法根据前一预定时间的请求总和的赋值决定将与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。根据系统请求的数量,实时的调整榜单的生成频率,保证系统的稳定,使榜单生成更具实时性。
[0092] 请参照图6,是本发明较佳实施例提供的榜单刷新装置110的功能模块架构示意图。
[0093] 本实施例提供的榜单刷新装置110包括接收模块601、刷新模块602、时间更新模块603和赋值更新模块604。
[0094] 其中,所述接收模块601可用于执行步骤S401。接收模块601用于接收对榜单进行刷新的请求,该请求由客户端200发送。
[0095] 所述时间更新模块603可用于执行步骤S402和S405。时间更新模块603用于当最新接受到请求的时间与启动时间的差值在第一时间范围内时,将启动时间更新为最新接受到请求的时间。本实施例中,第一时间范围的取值为1s~2s(不包括2s)。
[0096] 时间更新模块603还用于当最新请求的时间与启动时间的差值大于第二时间范围内时,将启动时间更新为所述最新请求的时间。本实施例中,第一时间范围的取值为2s~∞。
[0097] 所述赋值更新模块604可用于执行步骤S403和S404。赋值更新模块604用于对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为最新接受到请求的时间为止累加的请求总和。赋值更新模块604还用于对前一预定时间内对应的请求总和的赋值进行更新,所述更新后的赋值为零。
[0098] 所述刷新模块602可用于执行步骤S406~S412。刷新模块602用于在前一预定时间内的请求总和的赋值在第一范围内时,利用与前一预定时间连续的后一预定时间内接收到的请求刷新榜单。在本实施例中,第一范围的取值为0~10。
[0099] 刷新模块602还用于在前一预定时间内的请求总和的赋值在第二范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第一暂存区,并在第一暂存区饱和时,合并所述第一暂存区内的请求,利用合并后的请求刷新榜单。本实施例中,第二范围的取值为11~100,第一暂存区为缓冲器,第一暂存区的长度为4,即第一暂存区能够存储的请求数为4个。
[0100] 刷新模块602还用于在前一预定时间内的请求总和在第三范围内时,将与前一预定时间连续的后一预定时间内接收到的请求存入第二暂存区,并在第二暂存区饱和时,合并第二暂存区内的请求,并利用合并后的请求刷新榜单。刷新模块602还用于响应定时时间触发,利用第一暂存区或第二暂存区内的请求刷新榜单。本实施例中,第三范围的取值为101~∞,第二暂存区和第一暂存区均为缓冲器,该缓冲器的长度可以自由变化,该第二暂存区的长度为8,即第二暂存区能够存储的请求数为8个。
[0101] 综上所述,本发明实施例提供了一种榜单刷新方法及装置,在接收到对榜单进行刷新的请求后,根据前一预定时间的请求总和的赋值决定将与前一预定时间连续的后一预定时间内接收到的请求刷新榜单,或将前一预定时间连续的后一预定时间内接收到的请求存入暂存区。根据系统请求的数量,实时的调整榜单的生成频率,保证系统的稳定和榜单生成的准实时性。
[0102] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0103] 另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0104] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0105] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。