CN111405297A - 活动榜单结算方法、装置及存储介质 - Google Patents
活动榜单结算方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111405297A CN111405297A CN202010093658.7A CN202010093658A CN111405297A CN 111405297 A CN111405297 A CN 111405297A CN 202010093658 A CN202010093658 A CN 202010093658A CN 111405297 A CN111405297 A CN 111405297A
- Authority
- CN
- China
- Prior art keywords
- message
- activity
- list
- updated
- bit field
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/254—Management at additional data server, e.g. shopping server, rights management server
- H04N21/2543—Billing, e.g. for subscription services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26291—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种更新活动榜单的方法、装置及存储介质,属于互联网技术领域。在本申请实施例中,可以在活动消息的消息标识符中设置设定比特字段,如果根据活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将消息标识符中目标榜单对应的标志位设置为第一数值,进而根据包含有更新后的消息标识符的活动消息重新对对应的目标榜单进行更新,直至更新成功为止,这样,相较于相关技术中通过编写修复脚本来修复,更为简单,且也不会影响到后续的业务逻辑。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种活动榜单结算方法、装置及存储介质。
背景技术
当前,为了提升用户体验,增加用户粘度,应用服务商可以在应用中设置各种活动。例如,在直播应用中,应用服务商可以设置人气主播竞赛活动,通过统计主播在固定时间段内收到的礼物价值或数量来生成主播榜单,进而从该主播榜单中评选出人气主播。在诸如此类的活动中,通常可以从多个维度来对活动过程中的活动数据进行结算统计,从而得到多个维度对应的多个活动榜单,以此来提供用户参与活动的积极性。
相关技术中,服务器可以读取活动消息,根据活动消息中携带的活动数据和用户标识等信息,来对多个活动榜单中的每个活动榜单进行更新。然而,在更新过程中,可能会由于各种原因导致榜单更新失败,在这种情况下,服务器可以生成告警日志,该告警日志中可以携带有错误信息。开发人员可以根据该错误信息编写专门的修复脚本,以便根据该修复脚本来根据该活动消息对更新失败的榜单重新进行处理,处理过程较为复杂。
发明内容
本申请实施例提供了一种更新活动榜单的方法、装置及存储介质,可以在榜单结算失败的情况下,简化重新更新活动榜单的处理过程。所述技术方案如下:
第一方面,提供了一种更新活动榜单的方法,所述方法包括:
获取活动消息,所述活动消息包括消息标识符,所述消息标识符用于唯一标识所述活动消息;
如果根据所述活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将所述消息标识符包括的设定比特字段中与每个目标榜单对应的标志位设置为第一数值,所述设定比特字段中的每个标志位对应所述多个活动榜单中的一个活动榜单;
根据包含有更新后的消息标识符的活动消息,重新更新所述一个或多个目标榜单。
可选地,
所述获取活动消息之后,还包括:
检测所述消息标识符是否包括设定比特字段;
如果所述消息标识符包括所述设定比特字段,则根据所述设定比特字段确定未完成更新的活动榜单;
根据所述活动消息对所述未完成更新的活动榜单进行更新;
将更新成功的活动榜单对应的标志位设置为第二数值,所述第二数值与所述第一数值不同。
可选地,所述根据所述设定比特字段确定未完成更新的活动榜单,包括:
确定所述设定比特字段包括的多个标志位中取值为第一数值的标志位;
将取值为所述第一数值的标志位对应的活动榜单确定为所述未完成更新的活动榜单。
可选地,
所述检测所述消息标识符是否包括设定比特字段之后,还包括:
如果所述消息标识符不包括所述设定比特字段,则在所述消息标识符中添加所述设定比特字段,其中,添加的所述设定比特字段包括的多个标志位中每个标志位的初始值为所述第一数值。
可选地,所述获取活动消息,包括:
从消息队列中读取所述活动消息;
相应地,所述根据包含有更新后的消息标识符的活动消息,重新更新所述一个或多个目标榜单,包括:
将包含有所述更新后的消息标识符的活动消息重新写入所述消息队列,并返回执行从消息队列中读取所述活动消息的步骤,直至所述一个或多个目标榜单均更新成功为止。
第二方面,提供了一种更新活动榜单的装置,所述装置包括:
获取模块,用于获取活动消息,所述活动消息包括消息标识符,所述消息标识符用于唯一标识所述活动消息;
设置模块,用于如果根据所述活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将所述消息标识符包括的设定比特字段中与每个目标榜单对应的标志位设置为第一数值,所述设定比特字段中的每个标志位对应所述多个活动榜单中的一个活动榜单;
更新模块,用于根据包含有更新后的消息标识符的活动消息,重新更新所述一个或多个目标榜单。
可选地,所述装置还包括:
检测模块,用于检测所述消息标识符是否包括设定比特字段;
确定模块,用于如果所述消息标识符包括所述设定比特字段,则根据所述设定比特字段确定未完成更新的活动榜单;
所述更新模块,还用于根据所述活动消息对所述未完成更新的活动榜单进行更新;
所述设置模块,还用于将更新成功的活动榜单对应的标志位设置为第二数值,所述第二数值与所述第一数值不同。
可选地,所述确定模块具体用于:
确定所述设定比特字段包括的多个标志位中取值为第一数值的标志位;
将取值为所述第一数值的标志位对应的活动榜单确定为所述未完成更新的活动榜单。
可选地,所述装置还包括:
添加模块,用于如果所述消息标识符不包括所述设定比特字段,则在所述消息标识符中添加所述设定比特字段,其中,添加的所述设定比特字段包括的多个标志位中每个标志位的初始值为所述第一数值。
可选地,所述获取模块具体用于,从消息队列中读取所述活动消息;
所述更新模块具体用于:将包含有所述更新后的消息标识符的活动消息重新写入所述消息队列,并触发所述获取模块从消息队列中读取所述活动消息,直至所述一个或多个目标榜单均更新成功为止。
第三方面,提供了一种更新活动榜单的装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器执行所述存储器中的可执行指令来执行上述第一方面所述的任一项方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的任一项方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,可以在活动消息的消息标识符中设置设定比特字段,如果根据活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将消息标识符中目标榜单对应的标志位设置为第一数值,进而根据包含有更新后的消息标识符的活动消息重新对对应的目标榜单进行更新,直至更新成功为止,这样,相较于相关技术中通过编写修复脚本来修复,更为简单,且也不会影响到后续的业务逻辑。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络系统的系统架构图;
图2是本申请实施例提供的一种更新活动榜单的方法流程图;
图3是本申请实施例提供的另一种更新活动榜单的方法流程图;
图4是本申请实施例提供的一种更新活动榜单的装置的结构示意图;
图5是本申请实施例提供的一种用于更新活动榜单的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的应用场景进行介绍。
当前,在游戏、直播、音乐等各种应用中,为了增加用户粘度,提高应用营收,可以在应用中设置各种活动。在活动中,可以根据不同活动时段内的用户数据生成相应时段内的活动榜单,进而从中选出晋级到下一活动时段的晋级用户,以此来提供用户冲榜的积极性。并且,为了保证各方用户的冲榜积极性,通常可以从多个维度来对活动过程中的活动数据进行结算统计,从而得到多个维度的活动榜单。
例如,在直播应用中,在某些大型活动中,可以分别设置主播榜单和观众榜单。假设整个活动可以被划分为三个活动时段。对于第一个活动时段,参与活动的所有主播可以按照第一个活动时段的要求进行才艺展示。观众用户可以根据各个主播的才艺展示向主播赠送礼物。此时,可以统计第一个活动时段内各个主播接收到的礼物的总价值,按照礼物总价值从大到小的顺序,生成第一个活动时段的主播活动榜单。将第一个活动时段的主播活动榜单中排在前N位的主播作为晋级到第二个活动时段的主播。在对主播收到的礼物价值进行结算得到主播活动榜单的同时,还可以统计第一活动时段内各个观众赠送的礼物的价值,从而按照各个观众赠送礼物的价值来生成第一活动时段内的观众活动榜单。对于在第一活动时段内的观众活动榜单中排名靠前的观众,可以晋级到第二活动时段。之后,在第二个活动时段内,晋级的前N位主播可以按照第二个活动时段的要求进行不同的才艺展示。统计第二个活动时段内这N位主播接收到的礼物总价值,进而生成的第二个活动时段的主播活动榜单。将第二个活动时段的主播活动榜单中排在前M位的主播作为晋级到第三个活动时段的主播。同理,可以继续统计第二个活动时段内晋级的各位观众的赠送礼物的价值,从而得到第二个活动时段的观众活动榜单,将第二个活动时段的观众活动榜单中的前M位观众作为晋级到第三个活动时段的观众。最终,在第三个活动时段内,根据第三个活动时段的活动数据得出总的主播榜单和观众榜单,根据该最终的主播榜单和观众榜单执行后续业务逻辑。例如根据主播榜单,可以评选出最优主播,根据观众榜单,可以评选出最佳观众以给予该观众特殊的权限奖励等。本申请实施例提供的更新活动榜单的方法即可以应用于诸如上述的活动过程中,用于对不同维度的活动榜单进行更新。
需要说明的是,上述仅是本申请实施例给出的几种可能的应用场景的示例,但是并不构成对本申请实施例的应用场景的限定。
接下来对本申请实施例所涉及的系统结构进行介绍。
图1是本申请实施例提供的一种网络系统的示意图。如图1所示,该网络系统包括用户设备101、第一服务器102和第二服务器103。其中,用户设备101可以与第一服务器102通信,第一服务器102可以与第二服务器103通信。
其中,用户设备101可以是指参与活动的用户所对应的设备。该用户设备101可以根据用户操作生成操作数据,进而将该操作数据发送至第一服务器102。
示例性地,在直播应用场景中,用户设备101可以为所有在活动中为各个主播赠送礼物的观众用户的设备,此时,用户设备101发送的操作数据即为观众用户赠送礼物的赠送请求。
第一服务器102在接收到用户设备101发送的操作数据之后,可以根据各个用户设备101发送的操作数据生成活动消息。其中,该活动消息中包括根据操作数据确定的用户数据。
示例性地,仍以上述直播应用场景为例,第一服务器102在接收到各个观众用户赠送礼物的赠送请求之后,可以根据各个观众用户赠送礼物的赠送请求来将从相应观众用户的账号中进行扣费,并将该礼物添加至对应主播的账号中,以完成礼物的赠送,也即完成对赠送请求的处理。在赠送请求处理完成之后,第一服务器102可以将相应赠送请求中的礼物价值、赠送礼物的观众的标识和接收礼物的主播的标识作为一项活动数据,根据该活动数据来生成该赠送请求对应的活动消息,此时,该活动消息包括该活动数据、赠送礼物的观众的标识和主播的标识。
可选地,第一服务器102在其他场景中,也可以通过其他方法来生成后续参与榜单生成的各个用户的活动消息。本申请实施例在此不做限定。在生成活动消息时,第一服务器102可以根据活动消息的生成时间,或者是活动消息所对应的操作的完成时间来生成相应活动消息的时间戳,将该时间戳携带在相应的活动消息中。其中,活动消息所对应的操作的完成时间可以是指活动消息中的活动数据的结算时间。例如,在上述直播应用场景中,活动消息所对应的操作的完成时间就是指活动消息所对应的赠送操作完成时结算得到的活动数据的时间。
第一服务器102在生成活动消息之后,可以将该活动消息发送至第二服务器103。第二服务器103在接收到该活动消息之后,可以按照本申请实施例提供的方法来根据活动消息对不同维度的活动榜单进行更新。
需要说明的是,用户设备101可以为智能手机、笔记本、平板电脑、台式计算机等终端设备。第一服务器102和第二服务器103可以是两个独立的服务器,也可以是一台服务器中包括的两个不同的功能模块。本申请实施例对此不做限定。
接下来对本申请实施例提供的更新活动榜单的方法进行介绍。
图2是本申请实施例提供的一种更新活动榜单的方法。该方法可以应用于服务器中,例如,可以应用于图1所示的第二服务器中。如图2所示,该方法包括以下步骤:
步骤201:获取活动消息,该活动消息包括消息标识符,该消息标识符用于唯一标识活动消息。
在本申请实施例中,服务器中可以维护有一个消息队列。该消息队列中可以包括该服务器到当前时刻为止接收到的且还未处理的多个活动消息。服务器可以按照消息队列中各个活动消息从前到后的顺序,依次处理各个活动消息。也即,服务器可以从消息队列中读取队首的活动消息。其中,活动消息可以包括消息标识符和活动数据。活动数据用于后续进行榜单结算。根据应用场景以及所要结算的活动榜单的种类的不同,活动数据可能不同。
例如,在前述应用场景中,当活动榜单包括主播榜单和观众榜单时,活动数据中将包括主播标识和观众标识。可选地,如果活动榜单中还包括主播所属的公会的榜单,则该活动数据中还将包括主播所属的公会的标识。
可选地,在一种可能的情况中,服务器上可以部署有数据库,活动消息可以存储在数据库中,服务器中可以从数据库中读取活动消息。
另外,消息标识符用于唯一标识一个活动消息,不同的活动消息对应的消息标识符不同。其中,消息标识符可以包括消息标识字段,该字段用于唯一标识对应的活动消息。并且,在本申请实施例中,当一个活动消息中的活动数据是第一次用来进行活动榜单的结算时,该活动消息的初始的消息标识符中可以只包括该消息标识字段。在这种情况下,当服务器从消息队列中读取一个活动消息之后,在对该活动消息中的活动数据进行处理之前,可以首先检测该活动消息的消息标识符中是否只包含有消息标识字段,如果该活动消息的消息标识符中只包含有消息标识字段,则服务器可以获知该活动消息为第一次被用于进行活动榜单的结算,此时,该服务器可以生成一个设定比特字段,并将该设定比特字段添加至消息标识符中。
其中,设定比特字段包含多个标志位,每个标志位对应一个要维护的活动榜单,也即,该设定比特字段包括的标志位的数量可以与所要维护的活动榜单的总数量相同。例如,假设当前所要维护的活动榜单有主播榜单、观众榜单和公会榜单,则该设定比特字段可以包括三个标志位,每个标志位对应一个活动榜单。
需要说明的是,服务器在生成设定比特字段之后,可以将设定比特字段中的每个标志位的取值均设置为第一数值,然后将该设定比特字段与消息标识字段进行拼接,从而得到消息标识符。示例性地,假设第一数值为1,仍以前述的是三个活动榜单为例,则生成的设定比特字段为111,以此来指示根据该活动消息中的活动数据对三个活动榜单的结算还未完成。
可选地,如果服务器检测到活动消息的消息标识符中不仅包括消息标识字段,还包括设定比特字段,则服务器可以确定该活动消息之前已被用于进行过活动榜单的结算,只是在结算的过程中,有部分或全部榜单未能结算成功。
例如,服务器检测到该活动消息的消息标识符已经包含有设定比特字段010,假设从左到右的第一个标志位对应公会榜单,第二个标志位对应主播榜单,第三个标志位对应观众榜单,则根据该设定比特字段可以确定主播榜单还未结算成功。
步骤202:如果根据活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将消息标识符包括的设定比特字段中与每个目标榜单对应的标志位设置为第一数值。
由前述步骤201中的介绍可知,服务器在获取到活动消息之后,可以检测活动消息的消息标识符中是否包含有设定比特字段,进而根据检测结果来判断该活动消息是否为首次用于进行活动榜单结算。
其中,当消息标识符中不包含有设定比特字段时,服务器可以确定该活动消息首次用于进行活动榜单的结算,此时,服务器生成了每个标志位取值均为第一数值的设定比特字段,并添加至了消息标识符中。基于此,在本步骤中,服务器可以根据活动消息中的活动数据,依次对各个标志位对应的活动榜单进行结算更新。
示例性地,服务器可以按照从左到右或从右到左或其他顺序,首先根据活动消息中的活动数据对第一个标志位对应的活动榜单进行更新,如果更新成功,也即结算成功,则服务器可以将第一个标志位的取值修改为第二数值,以指示根据该活动消息中的活动数据已经对第一个标志位对应的活动榜单更新成功,也即完成了更新。其中,第二数值不同于第一数值。例如,第一数值为1时,第二数值可以为0。
如果根据该活动消息中的活动数据对第一个标志位对应的活动榜单更新失败,也即,结算失败,则第一个标志位对应的活动榜单即为一个更新失败的目标榜单。此时,服务器可以将该目标榜单对应的第一标志位的取值设置为第一数值,也即保持该目标榜单对应的第一标志位的取值不变,然后去更新第二个标志位对应的活动榜单,以此类推,直到更新完所有的标志位对应的活动榜单为止,从而使得维护的多个活动榜单中更新失败的目标榜单的标志位均为第一数值,而更新成功的榜单的标志位则均为第二数值。
可选地,如果在步骤201中读取到活动消息之后检测到该活动消息的消息标识符中包含有设定比特字段,则服务器可以根据该设定比特字段确定多个活动榜单中未完成更新的活动榜单。根据活动消息对未完成更新的活动榜单进行更新;将更新成功的活动榜单对应的标志位设置为第二数值。
需要说明的是,如果读取到的活动消息中存在设定比特字段,则说明该活动消息之前已经被用于进行过活动榜单的结算,只是存在部分或全部活动榜单更新失败了。而由前述介绍可知,在根据活动消息对活动榜单进行更新的过程中,对于更新失败的活动榜单,会将该活动榜单对应的标志位设置为第一数值。基于此,服务器可以确定设定比特字段中取值为第一数值的标志位,之后,将取值为第一数值的标志位对应的活动榜单确定为在上一次更新过程中未完成更新的活动榜单。
之后,服务器可以参考前述介绍的方法对这些未完成更新的活动榜单进行更新。同样的,对于更新成功的,可以将对应的标志位设置为第二数值,对于更新失败的,则可以将对应的标志位设置为第一数值,也即,保持对应的标志位的取值不变。
步骤203:根据包含有更新后的消息标识符的活动消息,重新更新一个或多个目标榜单。
在通过步骤202更新完所有标志位对应的活动榜单且更新完消息标识符中设定比特字段中对应的标志位之后,服务器可以检测该设定比特字段的各个标志位中是否存在取值为第一数值的标志位,以此来判断各个活动榜单是否均已更新成功。如果存在取值为第一数值的标志位,则说明此次更新过程中存在更新失败(也即未完成更新)的一个或多个目标榜单。此时,服务器可以将该活动消息重新插入到消息队列中,以便后续服务器可以再次从消息队列中读取该活动消息,并通过步骤201-203来对该活动消息进行处理。
可选地,在一些可能的实现方式中,服务器在确定此次更新过程中仍然存在更新失败的活动榜单之后,服务器还可以将该活动消息存入至数据库中。后续,服务器可以从该数据库中读取该活动消息,并通过步骤201和步骤203来根据该活动消息再次对未完成结算的活动榜单进行结算。
由此可见,在本申请实施例中,对于更新失败的活动榜单,服务器可以将活动榜单对应的标志位设置为第一数值,而对于更新成功的活动榜单,则将对应的标志位设置为第二数值,之后,将活动消息重新插入队列或存入数据库,后续重跑流程来重新根据该活动消息对这些活动榜单进行更新。这样,由于标志位的存在可以明确指示每次结算过程中需要结算的榜单,因此,不会对已经结算成功的榜单重复进行结算,也即,同一个活动消息多次进入到结算流程与通过这条活动消息进行一次正确结算的结果是一致的,保证了结算的幂等性。
需要说明的是,对于重新插入到消息队列中的活动消息或者是存入至数据库中的活动消息,这些活动消息的消息标识符中均包括设定比特字段,且更新失败的活动榜单在该设定比特字段中对应的标志位的取值为第一数值,而更新成功的活动榜单对应的标志位的取值则为第二数值。
可选地,在一种可能的情况中,服务器在检测设定比特字段之后可能会发现设定比特字段包括的标志位的取值均为第二数值,此时,则可以确定根据该活动消息对所有活动榜单的均已更新成功。在这种情况下,服务器可以将该活动消息删除,从而结束对这一活动消息的操作。
由此可见,在本申请实施例中,服务器使活动消息多次进入到结算流程直至根据该活动消息对所有活动榜单结算成功为止。这样,后续即可以根据结算成功的榜单完成后续的业务流程,相较于相关技术中通过编写修复脚本来修复,更为简单,且也不会影响到后续的业务逻辑。
综上所述,在本申请实施例中,可以在活动消息的消息标识符中添加设定比特字段,如果根据活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将消息标识符中目标榜单对应的标志位设置为第一数值,进而根据包含有更新后的消息标识符的活动消息重新对对应的目标榜单进行更新,直至更新成功为止,这样,相较于相关技术中通过编写修复脚本来修复,更为简单,且也不会影响到后续的业务逻辑。
另外,由于标志位的存在可以明确指示每次结算过程中需要结算的榜单,因此,不会对已经结算成功的榜单重复进行结算,也即,同一个活动消息多次进入到结算流程与通过这条活动消息进行一次正确结算的结果是一致的,保证了结算的幂等性。
接下来以一个示例来对本申请实施例提供的更新榜单的方法进行举例说明。
假设活动所要维护的榜单有三个,分别为主播榜单、观众榜单和公会榜单。参见图3,服务器在获取到一个活动消息之后,可以检测该活动消息的消息标识符中是否包含有设定比特字段,若不包含,则服务器可以生成设定字段比特“111”,也即,设定比特字段中各个标志位的初始值为1。将该设定比特字段添加至消息标识符中。其中,该设定比特字段中从左到右的各个标志位依次对应的活动榜单为公会榜单、主播榜单和观众榜单。
在将设定比特字段添加至消息标识符中之后,服务器可以首先根据该活动消息对观众榜单进行更新。如果更新成功,则将最后一个标志位修改为0。如果更新失败了,则将最后一个标志位设置为1,也即,保持最后一个标志位取值不变。在本示例中假设观众榜单更新成功,则更新后的消息标识符中的设定比特字段为110。之后,对主播榜单进行更新,假设在本实施例中对主播榜单的更新失败,则保持主播榜单对应的标志位不变,也即,设定比特字段仍为110。最后,对公会榜单进行更新,假设在本实施例中公会榜单更新成功,则将对应的标志位设置为0,此时,该设定比特字段为010。
在对三个活动榜单均进行更新后,由于对主播榜单的更新失败,因此,服务器可以将该活动消息重新插入至消息队列中,或者是存入至数据库中,此时,该活动消息的消息标识符中包含的设定比特字段为010。
后续,当服务器再次读取该活动消息之后,可以检测到该活动消息的消息标识符中包含有设定比特字段。此时,服务器可以参考前述方法依次对设定比特字段中取值为第一数值的标志位对应的活动榜单重新进行更新,以此类推,直至所有活动榜单均更新成功之后,将该活动消息删除。
接下来,对本申请实施例提供的更新活动榜单的装置进行介绍。
参见图4,本申请实施例提供了一种更新活动榜单的装置400,该装置400包括:
获取模块401,用于获取活动消息,活动消息包括消息标识符,消息标识符用于唯一标识活动消息;
设置模块402,用于如果根据活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将消息标识符包括的设定比特字段中与每个目标榜单对应的标志位设置为第一数值,设定比特字段中的每个标志位对应多个活动榜单中的一个活动榜单;
更新模块403,用于根据包含有更新后的消息标识符的活动消息,重新更新一个或多个目标榜单。
可选地,该装置400还包括:
检测模块,用于检测消息标识符是否包括设定比特字段;
确定模块,用于如果消息标识符包括设定比特字段,则根据设定比特字段确定未完成更新的活动榜单;
更新模块,还用于根据活动消息对未完成更新的活动榜单进行更新;
设置模块,还用于将更新成功的活动榜单对应的标志位设置为第二数值,第二数值与第一数值不同。
可选地,确定模块具体用于:
确定设定比特字段包括的多个标志位中取值为第一数值的标志位;
将取值为第一数值的标志位对应的活动榜单确定为未完成更新的活动榜单。
可选地,该装置400还包括:
添加模块,用于如果消息标识符不包括设定比特字段,则在消息标识符中添加设定比特字段,其中,添加的设定比特字段包括的多个标志位中每个标志位的初始值为第一数值。
可选地,获取模块具体用于,从消息队列中读取活动消息;
更新模块具体用于:将包含有更新后的消息标识符的活动消息重新写入消息队列,并触发获取模块从消息队列中读取活动消息,直至一个或多个目标榜单均更新成功为止。
综上所述,本申请实施例可以在活动消息的消息标识符中添加设定比特字段,如果根据活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将消息标识符中目标榜单对应的标志位设置为第一数值,进而根据包含有更新后的消息标识符的活动消息重新对对应的目标榜单进行更新,直至更新成功为止,这样,相较于相关技术中通过编写修复脚本来修复,更为简单,且也不会影响到后续的业务逻辑。。
需要说明的是:上述实施例提供的更新活动榜单的装置在更新活动榜单时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的更新活动榜单的装置与更新活动榜单的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是根据一示例性实施例示出的一种用于更新活动榜单的服务器500结构示意图。上述图2或3所示的实施例中的服务器的功能即可以通过图5中所示的服务器来实现。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器500包括中央处理单元(CPU)501、包括随机存取存储器(RAM)502和只读存储器(ROM)503的系统存储器504,以及连接系统存储器504和中央处理单元501的系统总线505。服务器500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)506,和用于存储操作系统513、应用程序514和其他程序模块515的大容量存储设备507。
基本输入/输出系统506包括有用于显示信息的显示器508和用于用户输入信息的诸如鼠标、键盘之类的输入设备509。其中显示器508和输入设备509都通过连接到系统总线505的输入输出控制器510连接到中央处理单元501。基本输入/输出系统506还可以包括输入输出控制器510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器510还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备507通过连接到系统总线505的大容量存储控制器(未示出)连接到中央处理单元501。大容量存储设备507及其相关联的计算机可读介质为服务器500提供非易失性存储。也就是说,大容量存储设备507可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器504和大容量存储设备507可以统称为存储器。
根据本申请的各种实施例,服务器500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器500可以通过连接在系统总线505上的网络接口单元511连接到网络512,或者说,也可以使用网络接口单元511来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的更新活动榜单的方法的指令。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述图2-3所示实施例提供的更新活动榜单的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述图2-3所示实施例提供的更新活动榜单的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的可选实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种更新活动榜单的方法,其特征在于,所述方法包括:
获取活动消息,所述活动消息包括消息标识符,所述消息标识符用于唯一标识所述活动消息;
如果根据所述活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将所述消息标识符包括的设定比特字段中与每个目标榜单对应的标志位设置为第一数值,所述设定比特字段中的每个标志位对应所述多个活动榜单中的一个活动榜单;
根据包含有更新后的消息标识符的活动消息,重新更新所述一个或多个目标榜单。
2.根据权利要求1所述的方法,其特征在于,所述获取活动消息之后,还包括:
检测所述消息标识符是否包括设定比特字段;
如果所述消息标识符包括所述设定比特字段,则根据所述设定比特字段确定未完成更新的活动榜单;
根据所述活动消息对所述未完成更新的活动榜单进行更新;
将更新成功的活动榜单对应的标志位设置为第二数值,所述第二数值与所述第一数值不同。
3.根据权利要求2所述的方法,其特征在于,所述根据所述设定比特字段确定未完成更新的活动榜单,包括:
确定所述设定比特字段包括的多个标志位中取值为第一数值的标志位;
将取值为所述第一数值的标志位对应的活动榜单确定为所述未完成更新的活动榜单。
4.根据权利要求2所述的方法,其特征在于,所述检测所述消息标识符是否包括设定比特字段之后,还包括:
如果所述消息标识符不包括所述设定比特字段,则在所述消息标识符中添加所述设定比特字段,其中,添加的所述设定比特字段包括的多个标志位中每个标志位的初始值为所述第一数值。
5.根据权利要求1-4任一所述的方法,其特征在于,所述获取活动消息,包括:
从消息队列中读取所述活动消息;
相应地,所述根据包含有更新后的消息标识符的活动消息,重新更新所述一个或多个目标榜单,包括:
将包含有所述更新后的消息标识符的活动消息重新写入所述消息队列,并返回执行从消息队列中读取所述活动消息的步骤,直至所述一个或多个目标榜单均更新成功为止。
6.一种更新活动榜单的装置,其特征在于,所述装置包括:
获取模块,用于获取活动消息,所述活动消息包括消息标识符,所述消息标识符用于唯一标识所述活动消息;
设置模块,用于如果根据所述活动消息对多个活动榜单中的一个或多个目标榜单更新失败,则将所述消息标识符包括的设定比特字段中与每个目标榜单对应的标志位设置为第一数值,所述设定比特字段中的每个标志位对应所述多个活动榜单中的一个活动榜单;
更新模块,用于根据包含有更新后的消息标识符的活动消息,重新更新所述一个或多个目标榜单。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测所述消息标识符是否包括设定比特字段;
确定模块,用于如果所述消息标识符包括所述设定比特字段,则根据所述设定比特字段确定未完成更新的活动榜单;
所述更新模块,还用于根据所述活动消息对所述未完成更新的活动榜单进行更新;
所述设置模块,还用于将更新成功的活动榜单对应的标志位设置为第二数值,所述第二数值与所述第一数值不同。
8.根据权利要求6或7所述的装置,其特征在于,
所述获取模块具体用于,从消息队列中读取所述活动消息;
所述更新模块具体用于:将包含有所述更新后的消息标识符的活动消息重新写入所述消息队列,并触发所述获取模块从消息队列中读取所述活动消息,直至所述一个或多个目标榜单均更新成功为止。
9.一种更新活动榜单的装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器执行所述存储器中的可执行指令来执行上述权利要求1-5任一项方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述权利要求1-5任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093658.7A CN111405297B (zh) | 2020-02-14 | 2020-02-14 | 活动榜单结算方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093658.7A CN111405297B (zh) | 2020-02-14 | 2020-02-14 | 活动榜单结算方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111405297A true CN111405297A (zh) | 2020-07-10 |
CN111405297B CN111405297B (zh) | 2022-11-04 |
Family
ID=71413309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010093658.7A Active CN111405297B (zh) | 2020-02-14 | 2020-02-14 | 活动榜单结算方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111405297B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112423013A (zh) * | 2020-11-19 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 在线互动方法、客户端、服务器、计算设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190228446A1 (en) * | 2018-01-22 | 2019-07-25 | Giftwith Inc | Plural user transaction system and methods |
CN110401843A (zh) * | 2019-08-06 | 2019-11-01 | 广州虎牙科技有限公司 | 直播平台中的榜单数据更新方法、装置、设备和介质 |
CN110781373A (zh) * | 2019-10-29 | 2020-02-11 | 北京字节跳动网络技术有限公司 | 榜单更新方法、装置、可读介质和电子设备 |
-
2020
- 2020-02-14 CN CN202010093658.7A patent/CN111405297B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190228446A1 (en) * | 2018-01-22 | 2019-07-25 | Giftwith Inc | Plural user transaction system and methods |
CN110401843A (zh) * | 2019-08-06 | 2019-11-01 | 广州虎牙科技有限公司 | 直播平台中的榜单数据更新方法、装置、设备和介质 |
CN110781373A (zh) * | 2019-10-29 | 2020-02-11 | 北京字节跳动网络技术有限公司 | 榜单更新方法、装置、可读介质和电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112423013A (zh) * | 2020-11-19 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 在线互动方法、客户端、服务器、计算设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111405297B (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108683539B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
CN112073269B (zh) | 区块链网络测试方法、装置、服务器及存储介质 | |
CN107885656B (zh) | 产品算法自动化测试方法及应用服务器 | |
CN108848055B (zh) | 一种区块链共识方法、记账节点及节点 | |
CN111372089B (zh) | 更新活动榜单的方法、装置及存储介质 | |
CN110830234B (zh) | 一种用户流量分配方法及装置 | |
CN107153646B (zh) | 一种数据处理方法和设备 | |
CN110808839B (zh) | 一种区块链异常数据的处理方法、装置、设备和介质 | |
CN110581887B (zh) | 数据处理方法、装置、区块链节点及存储介质 | |
CN110727575B (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
CN111782551B (zh) | 针对区块链项目的测试方法、装置及计算机设备 | |
CN109948882B (zh) | 基于区块数据结构的任务处理方法及相关设备 | |
CN111275438A (zh) | 区块链网络的共识方法、装置、设备和存储介质 | |
CN111314746A (zh) | 广告播放方法、装置和系统 | |
CN112202647B (zh) | 区块链网络中的测试方法、装置及测试设备 | |
CN110597888A (zh) | 基于区块链的虚拟资源获取方法及装置、介质、设备 | |
CN111405297B (zh) | 活动榜单结算方法、装置及存储介质 | |
CN111352832B (zh) | 自动测试页面的方法、装置 | |
CN112783790B (zh) | 一种应用程序测试方法和装置 | |
CN110609967B (zh) | 一种榜单生成方法、装置及存储介质 | |
CN109254977A (zh) | 数据生成方法、大数据风控平台及计算机存储介质 | |
CN113821443B (zh) | 应用程序的功能检测方法、装置、设备及存储介质 | |
CN113157714B (zh) | 榜单数据更新方法、装置、电子设备及存储介质 | |
CN115712571A (zh) | 一种交互服务测试、装置、计算机设备及存储介质 | |
CN110602246B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210115 Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Address before: 511446 24 / F, building B-1, Wanda Plaza, Panyu District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |