本申请实施例涉及互联网,尤其涉及一种发奖控制方法、系统、计算机设备、计算机可读存储介质、计算机程序产品。
背景技术:
1、随着网络直播技术的发展,各类型直播间已经快速融入到人们的日常生活中。为了吸引更多观众和优质主播,直播平台通常会推出多样玩法,如,节日活动、任务、榜单、抽奖等,以激励用户参与和创造高质量内容,拉动平台营收,丰富直播生态。
2、目前,诸多的直播互动玩法都存在一个共同的场景:给用户发放奖励。传统的奖品发放方法通过将所有的发奖请求发布到队列中,发奖控制系统通过消费队列中的请求以发放奖品。然而,传统的发奖方法当有大量的发奖消息涌入队列时,由于当时发奖控制系统没做消息隔离,造成高优业务的发奖消息消费延迟,影响直播发奖效果。
3、需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
技术实现思路
1、本申请实施例提供一种发奖控制方法、系统、计算机设备、计算机可读存储介质、计算机程序产品,以解决或缓解上面提出的一项或更多项技术问题。
2、本申请实施例的一个方面提供了一种发奖控制方法,应用于发奖控制系统,所述发奖控制系统包含一级队列和二级队列,所述方法包括:
3、接收发奖消息,所述发奖消息包含业务来源和奖品类型;
4、根据所述业务来源将所述发奖消息发布到所述一级队列的目标通道中;
5、根据所述奖品类型对所述目标通道中的发奖消息进行整合处理,并将整合后的发奖消息发布到所述二级队列的目标子队列中;
6、消费所述目标子队列中的发奖消息以实现奖品发放。
7、可选地,在所述接收发奖消息的步骤之前,所述方法还包括:
8、获取奖品配置数据,并根据所述奖品配置数据配置所述发奖控制系统中的奖品包裹参数。
9、可选地,所述根据所述奖品类型对所述目标通道中的发奖消息进行整合处理,并将整合后的发奖消息发布到所述二级队列的目标子队列中,包括:
10、在所述目标通道为慢通道的情况下,根据所述奖品类型对所述二级队列中的发奖消息进行拆分得到多个子发奖消息;
11、分别确定与每一个子发奖消息匹配的第一目标子队列,并将所述多个子发奖消息发布到所述二级队列的第一目标子队列中,其中,所述第一目标子队列的数据结构为redislist结构。
12、可选地,所述根据所述奖品类型对所述目标通道中的发奖消息进行整合处理,并将整合后的发奖消息发布到所述二级队列的目标子队列中,包括:
13、在所述目标通道为快通道的情况下,根据所述奖品类型对所述二级队列中的发奖消息进行聚合得到多种延迟类型的消息;
14、分别确定与每一种延迟类型的消息匹配的第二目标子队列,并将所述多个延迟类型的消息发布到所述二级队列的第二目标子队列中,其中,所述第二目标子队列的数据结构为databus结构。
15、可选地,在所述根据所述业务来源将所述发奖消息发布到所述一级队列的目标通道中的步骤之后,所述方法还包括:
16、针对所述发奖消息生成唯一键值,并根据所述唯一键值在预设数据库中记录所述发奖消息。
17、可选地,所述消费所述目标子队列中的发奖消息以实现奖品发放,包括:
18、采用幂等处理的方式,根据所述唯一键值消费所述目标子队列中的发奖消息以实现奖品发放。
19、可选地,所述方法还包括:
20、在消费所述目标子队列中的发奖消息之后,更新所述预设数据库中所述发奖消息对应的发奖状态。
21、可选地,所述方法还包括:
22、在发奖异常的情况下,根据所述唯一键值重试所述发奖消息。
23、可选地,所述发奖控制系统还包括三级队列,所述在发奖异常的情况下,根据所述唯一键值重试所述发奖消息,包括:
24、在发奖异常的情况下,根据所述唯一键值将所述发奖消息发布到所述三级队列中;
25、采用指数退避的方式重试所述三级队列中的发奖消息。
26、可选地,所述方法还包括:
27、统计所述三级队列中每一个发奖消息的重试次数,并在所述重试次数大于预设数值的情况下,结束重试流程。
28、可选地,所述方法还包括:
29、按照预设时长从所述预设数据库中确定发奖状态为未完成的发奖消息,并重试所述发奖状态为未完成的发奖消息。
30、本申请实施例的另一个方面提供了一种发奖控制系统,包括:
31、发奖消息接收模块,用于接收发奖消息,所述发奖消息包含业务来源和奖品类型;
32、一级队列消息发布模块,用于根据所述业务来源将所述发奖消息发布到所述一级队列的目标通道中;
33、二级队列消息发布模块,用于根据所述奖品类型对所述目标通道中的发奖消息进行整合处理,并将整合后的发奖消息发布到所述二级队列的目标子队列中;
34、奖品发放模块,用于消费所述目标子队列中的发奖消息以实现奖品发放。
35、本申请实施例的另一个方面提供了一种计算机设备,包括:
36、至少一个处理器;及
37、与所述至少一个处理器通信连接的存储器;
38、其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的发奖控制方法。
39、本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的发奖控制方法。
40、本申请实施例的另一个方面提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的发奖控制方法。
41、本申请实施例采用上述技术方案可以包括如下优势:通过设计多级队列的方式来处理发奖消息以实现奖品发放,其中,一级队列可以用来做通道隔离,如快慢通道隔离,以解决上游业务的资源竞争的问题,且系统提供了让上游发奖的业务方自主选择快慢通道的能力,上游可根据业务来源是否容忍延迟来选择快慢通道,可满足不同场景下的业务需求,例如,对时效敏感的业务来源则选择快通道,对时效不敏感的业务来源则可以选择慢通道。而二级队列可以灵活地对发奖消息的消费过程进行限速,在多业务陷入资源竞争时也可以人工介入保障高能级业务先行。从而本实施例可以作为通用的奖励中心,既能保证上游业务正常发放,也能够保护下游不至于被击垮。
1.一种发奖控制方法,其特征在于,应用于发奖控制系统,所述发奖控制系统包含一级队列和二级队列,所述方法包括:
2.根据权利要求1所述的发奖控制方法,其特征在于,在所述接收发奖消息的步骤之前,所述方法还包括:
3.根据权利要求1所述的发奖控制方法,其特征在于,所述根据所述奖品类型对所述目标通道中的发奖消息进行整合处理,并将整合后的发奖消息发布到所述二级队列的目标子队列中,包括:
4.根据权利要求1所述的发奖控制方法,其特征在于,所述根据所述奖品类型对所述目标通道中的发奖消息进行整合处理,并将整合后的发奖消息发布到所述二级队列的目标子队列中,包括:
5.根据权利要求1所述的发奖控制方法,其特征在于,在所述根据所述业务来源将所述发奖消息发布到所述一级队列的目标通道中的步骤之后,所述方法还包括:
6.根据权利要求5所述的发奖控制方法,其特征在于,所述消费所述目标子队列中的发奖消息以实现奖品发放,包括:
7.根据权利要求5所述的发奖控制方法,其特征在于,所述方法还包括:
8.根据权利要求5所述的发奖控制方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的发奖控制方法,其特征在于,所述发奖控制系统还包括三级队列,所述在发奖异常的情况下,根据所述唯一键值重试所述发奖消息,包括:
10.根据权利要求9所述的发奖控制方法,其特征在于,所述方法还包括:
11.根据权利要求5所述的发奖控制方法,其特征在于,所述方法还包括:
12.一种发奖控制系统,其特征在于,包括:
13.一种计算机设备,其特征在于,包括:
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至11中任一项所述的发奖控制方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11所述的发奖控制方法的步骤。