电子红包分配控制方法及其装置、设备、介质制造方法及图纸

技术编号:32923920 阅读:11 留言:0更新日期:2022-04-07 12:15
本申请公开一种电子红包分配控制方法及其装置、设备、介质,所述方法包括:响应电子红包发布请求,将电子红包的预设红包总额存储于数据库,并存储至缓存中作为当前红包余额;响应并发的多个电子红包分配请求,从所述红包总额中确定各个分配请求相对应的目标红包份额;基于每个分配请求对所述电子红包的当前红包余额执行原子操作,以从当前红包余额中扣除该分配请求相应的目标红包份额,获得当次原子操作后的当前红包余额作为试算扣后余额;判断每个分配请求的所述试算扣后余额为非负值时,以该分配请求相对应的目标红包份额从所述数据库的红包总额转移相应份额至触发该分配请求的用户个人账户中。本申请能提升红包分配效率,适于网络直播场景。适于网络直播场景。适于网络直播场景。

【技术实现步骤摘要】
电子红包分配控制方法及其装置、设备、介质


[0001]本申请涉及网络直播
,尤其涉及一种电子红包分配控制方法及其相应的装置、计算机设备、计算机可读存储介质。

技术介绍

[0002]目前互联网上的运营活动方式有很多种,但是被验证一直有效的就是抢红包这个方式。一般抢红包的逻辑是:有一个红包,总额确定,用户从总额中扣除一部分给到自己,金额可变,先到先得。
[0003]业界实现协调用户抢红包的方案有多种,分别介绍如下:
[0004]第一种是采用分布式锁把红包总额锁住,然后并发请求的用户争夺锁,以此避免超发。按照这种方式,大量的并发操作加上对分布式锁的控制的业务逻辑,造成非常大的系统开销,实测中,实现电子红包分配的分发的业务逻辑所能响应的速率大概在1000

2000QPS左右,表明设备负荷较大,响应速率慢,单台设备难以胜任对大量的电子红包进行并发的分配管控。
[0005]第二种是使用消息队列,在用户请求到达之后进行排队,按先进先出的顺序发放。这种方式的不足是,引入消息队列增加了底层逻辑的系统复杂度,同时消息队列的异步处理机制,使用户无法实时获得反馈,用户体验差。例如,抢占同一电子红包的并发用户高达100人时,这100人相应的请求陆续到达消息队列再陆续出列,最终完成红包的分配,必需基于100个请求完全出列实现集中后实施,显然,其缺点是相当明显的,如为改善用户体验,对设备的本身的硬件要求是较高的。
[0006]第三种是在业务前端提前先分配好用户的token(令牌)或红包额度,用户请求凭token兑换额度,或者预先生成红包。这种方式,由于红包分配逻辑需要在前端进行处理,无法标准化处理,在实施红包分配的底层逻辑上,无Token即不能获得红包,有Token的用户请求其红包份额已经确定,因此,无法应对红包金额根据用户或者活动过程进行变化的情况,比如翻倍卡,按比例减少等。

技术实现思路

[0007]本申请的首要目的在于解决上述问题至少之一而提供一种电子红包分配控制方法及其相应的装置、计算机设备、计算机可读存储介质。
[0008]为满足本申请的各个目的,本申请采用如下技术方案:
[0009]适应本申请的目的之一而提出的一种电子红包分配控制方法,包括如下步骤:
[0010]响应电子红包发布请求,将电子红包的预设红包总额存储于数据库,并存储至缓存中作为当前红包余额;
[0011]响应并发的多个电子红包分配请求,从所述红包总额中确定各个分配请求相对应的目标红包份额;
[0012]基于每个分配请求对所述电子红包的当前红包余额执行原子操作,以从当前红包
余额中扣除该分配请求相应的目标红包份额,获得当次原子操作后的当前红包余额作为试算扣后余额;
[0013]判断每个分配请求的所述试算扣后余额为非负值时,以该分配请求相对应的目标红包份额从所述数据库的红包总额转移相应份额至触发该分配请求的用户个人账户中。
[0014]进一步的实施例中,基于每个分配请求对所述电子红包的当前红包余额执行原子操作的步骤之后,包括如下后续步骤:
[0015]判断每个分配请求的所述试算扣后余额为负值时,将该分配请求的试算扣后余额加计其目标红包份额获得倒推扣前余额;
[0016]判断所述倒推扣前余额为正值时,以该倒推扣前余额从所述数据库的红包总额转移相应份额至触发该分配请求的用户个人账户中;
[0017]判断所述倒推扣前余额为非正值时,返回表征红包分配失败的通知消息。
[0018]较佳的实施例中,所述以该分配请求相对应的目标红包份额从所述数据库的红包总额转移相应份额至触发该分配请求的用户个人账户中的步骤之后,包括如下步骤:
[0019]向获得红包的用户推送通知消息,使其图形用户界面显示其获得的红包份额。
[0020]具体化的实施例中,基于每个分配请求对所述电子红包的当前红包余额执行原子操作,以从当前红包余额中扣除该分配请求相应的目标红包份额,获得当次原子操作后的当前红包余额作为试算扣后余额,包括如下步骤:
[0021]控制每个分配请求按照系统I/O队列排队调用缓存中间件,使该缓存中间件按先后顺序获得每个分配请求相对应的目标红包份额;
[0022]由所述缓存中间件针对每个分配请求的目标红包份额顺序执行原子减法操作,在缓存中的当前红包余额的基础上扣减所述目标红包份额获得当前原子减法操作后的当前红包余额,作为该分配请求相对应的试算扣后余额;
[0023]获取该缓存中间件返回的试算扣后余额。
[0024]具体化的实施例中,响应电子红包发布请求,将电子红包的预设红包总额存储于数据库,并存储至缓存中作为当前红包余额,包括如下步骤:
[0025]响应直播间主播用户触发的电子红包发布请求,获得该发布请求中预设的红包总额;
[0026]校验所述主播用户的用户个人账户中的余额是否大于等于所述红包总额,若校验成立,创建电子红包,将该电子红包相对应的红包总额,从该主播用户的用户个人账户转移存储至数据库中,同步将该红包总额存储至缓存中;若校验失败,拒绝该电子红包发布请求,发送通知消息给该主播用户;
[0027]在创建电子红包后向直播间广播电子红包通知消息以显示至直播间任意用户的图形用户界面,用于受控触发所述用户相对应的电子红包分配请求。
[0028]深化的一种实施例中,从所述红包总额中确定各个分配请求相对应的目标红包份额,包括如下步骤:
[0029]从触发分配请求的各个用户的个人信息库中获取各个用户相应的权重,所述权重为根据相应的用户的身份等级、积分数值、消费额度中的任意一项或任意多项确定的量化数值;
[0030]将每个用户的权重与所有所述用户的权重总和之比作为归一化的分配系数;
[0031]以每个用户的分配系数与所述红包总额之积作为相应用户的目标红包份额。
[0032]深化的另一实施例中,响应并发的多个电子红包分配请求,从所述红包总额中确定各个分配请求相对应的目标红包份额,包括如下步骤:
[0033]响应每个电子红包分配请求,根据其指定的特征信息确定相对应的电子红包;
[0034]根据所述电子红包所预设的配置信息,确定所述目标红包份额所指定的计数类型;
[0035]根据所述计数类型计算所述目标红包份额,若所述计数类型表征等份额计算,则将该电子红包配置信息中预设的红包总额除以预设的红包份数,获得相应的目标红包份额;若所述计数类型表征随机计算,则将该电子红包配置信息中预设的红包总额乘以随机数,获得相应的目标红包份额。
[0036]适应本申请的目的之一而提供的一种电子红包分配控制装置,包括:红包发布模块、份额分配模块、试算执行模块,以及红包判定模块,其中,所述红包发布模块,用于响应电子红包发布请求,将电子红包的预设红包总额存储于数据库,并存储至缓存中作为当前红包余额;所述份额分配模块,用于响应并发的多个电子红包分配请求,从所述红包总额中确本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种电子红包分配控制方法,其特征在于,包括如下步骤:响应电子红包发布请求,将电子红包的预设红包总额存储于数据库,并存储至缓存中作为当前红包余额;响应并发的多个电子红包分配请求,从所述红包总额中确定各个分配请求相对应的目标红包份额;基于每个分配请求对所述电子红包的当前红包余额执行原子操作,以从当前红包余额中扣除该分配请求相应的目标红包份额,获得当次原子操作后的当前红包余额作为试算扣后余额;判断每个分配请求的所述试算扣后余额为非负值时,以该分配请求相对应的目标红包份额从所述数据库的红包总额转移相应份额至触发该分配请求的用户个人账户中。2.根据权利要求1所述的电子红包分配控制方法,其特征在于,基于每个分配请求对所述电子红包的当前红包余额执行原子操作的步骤之后,包括如下后续步骤:判断每个分配请求的所述试算扣后余额为负值时,将该分配请求的试算扣后余额加计其目标红包份额获得倒推扣前余额;判断所述倒推扣前余额为正值时,以该倒推扣前余额从所述数据库的红包总额转移相应份额至触发该分配请求的用户个人账户中;判断所述倒推扣前余额为非正值时,返回表征红包分配失败的通知消息。3.根据权利要求2所述的电子红包分配控制方法,其特征在于,所述以该分配请求相对应的目标红包份额从所述数据库的红包总额转移相应份额至触发该分配请求的用户个人账户中的步骤之后,包括如下步骤:向获得红包的用户推送通知消息,使其图形用户界面显示其获得的红包份额。4.根据权利要求1至3中任意一项所述的电子红包分配控制方法,其特征在于,基于每个分配请求对所述电子红包的当前红包余额执行原子操作,以从当前红包余额中扣除该分配请求相应的目标红包份额,获得当次原子操作后的当前红包余额作为试算扣后余额,包括如下步骤:控制每个分配请求按照系统I/O队列排队调用缓存中间件,使该缓存中间件按先后顺序获得每个分配请求相对应的目标红包份额;由所述缓存中间件针对每个分配请求的目标红包份额顺序执行原子减法操作,在缓存中的当前红包余额的基础上扣减所述目标红包份额获得当前原子减法操作后的当前红包余额,作为该分配请求相对应的试算扣后余额;获取该缓存中间件返回的试算扣后余额。5.根据权利要求1至3中任意一项所述的电子红包分配控制方法,其特征在于,响应电子红包发布请求,将电子红包的预设红包总额存储于数据库,并存储至缓存中作为当前红包余额,包括如下步骤:响应直播间主播用户触发的电子红包发布请求,获得该发布请求中预设的红包总额;校验所述主播用户的用户个人账户中的余额是否大于等于所述红包总额,若校验成立,创建电子红包,将该电子红包相对应的红包总额,从该主播用户的用户个人账户转...

【专利技术属性】
技术研发人员:许百阳
申请(专利权)人:广州津虹网络传媒有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1