一种控制红包的方法以及系统与流程

文档序号:12470471阅读:753来源:国知局
一种控制红包的方法以及系统与流程

本发明涉及一种控制红包的方法以及系统。



背景技术:

在当今互联网行业高速发展的时代,抢红包这种线上的沟通交友方式,已经越来越受到广大人民群众的追捧;当大量用户争抢同一个红包的操作时,访问量的上升,多进程的开辟,此时相对应于服务器则需要较高的性能要求和网络质量。

在抢红包的高峰期,存在着红包个数少,抢红包用户多的情况。在此情况下,存在着同一时刻多用户抢同一个红包,或者已经被抢的红包还没来得及修改红包状态极有可能被其他用户再次争抢。因此,如何让红包有序的被用户获取、避免每次争抢红包时获取数据的不一致是红包系统中主要处理的核心问题。



技术实现要素:

本发明要解决的技术问题,在于提供一种控制红包的方法以及系统,使得处理速度加快,并降低了数据库压力。

本发明之一是这样实现的:一种控制红包的方法,包括如下步骤:

步骤1、服务器将红包分为限定个子红包,设置每个子红包的金额以及序列值;

步骤2、服务器根据用户的先后顺序,依次将子红包的序列值分配给用户;

步骤3、根据序列值将子红包的金额分配给对应的用户。

进一步地,所述步骤1进一步具体为:服务器将红包分为限定个子红包,设置每个子红包的金额以及序列值,并存入服务器数据缓存中。

进一步地,所述步骤2进一步具体为:服务器根据用户的先后顺序,将一子红包的序列值分配给一用户,之后进入步骤3;或者服务器根据用户的先后顺序,依次将限定个数的子红包的序列值分配给限定个数的用户。

进一步地,所述步骤3进一步具体为:服务器开启一进程,并开启共享内存锁,之后根据序列值为用户分配子红包的金额,之后服务器关闭共享内存锁;若存在子红包未分配,则进入步骤2。

本发明之二是这样实现的:一种控制红包的系统,包括如下模块:

设置模块,服务器将红包分为限定个子红包,设置每个子红包的金额以及序列值;

分配序列值模块,服务器根据用户的先后顺序,依次将子红包的序列值分配给用户;

控制红包模块,根据序列值将子红包的金额分配给对应的用户。

进一步地,所述设置模块进一步具体为:服务器将红包分为限定个子红包,设置每个子红包的金额以及序列值,并存入服务器数据缓存中。

进一步地,所述分配序列值模块进一步具体为:服务器根据用户的先后顺序,将一子红包的序列值分配给一用户,之后进入步骤3;或者服务器根据用户的先后顺序,依次将限定个数的子红包的序列值分配给限定个数的用户。

进一步地,所述控制红包模块进一步具体为:服务器开启一进程,并开启共享内存锁,之后根据序列值为用户分配子红包的金额,之后服务器关闭共享内存锁;若存在子红包未分配,则进入分配序列值模块。

本发明具有如下优点:本发明一种控制红包的方法以及系统,规避了mysql数据库在高并发时,使用加锁操作,大幅降低数据库的性能,吞吐量下降;在资源端,将红包信息cache在数据缓存里,避免第一级逻辑判断时对数据库大量的访问锁操作,分配的资源,减少数据库的负担;之后通过调用子进程,批量串行处理并发的红包数据,之后在与mysql链接,实行数据的更新,达到无锁等待,大幅提升性能。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明方法执行流程图。

图2为本发明系统的原理框图。

图3为本发明红包与子红包的关系示意图。

具体实施方式

如图1和图3所示,本发明控制红包的方法,包括如下步骤:

步骤1、服务器将红包分为限定个子红包,设置每个子红包的金额以及序列值,并存入服务器数据缓存中;

步骤2、服务器根据用户的先后顺序,将一子红包的序列值分配给一用户,之后进入步骤3;或者服务器根据用户的先后顺序,依次将限定个数的子红包的序列值分配给限定个数的用户;

步骤3、服务器开启一进程,并开启共享内存锁,之后根据序列值为用户分配子红包的金额,之后服务器关闭共享内存锁;若存在子红包未分配(即服务器数据缓存中设有子红包的库存量,该库存量不为零时表示存在子红包未分配),则进入步骤2。

如图2和图3所示,本发明控制红包的系统,包括如下模块:

设置模块,服务器将红包分为限定个子红包,设置每个子红包的金额以及序列值,并存入服务器数据缓存中;

分配序列值模块,服务器根据用户的先后顺序,将一子红包的序列值分配给一用户,之后进入步骤3;或者服务器根据用户的先后顺序,依次将限定个数的子红包的序列值分配给限定个数的用户;

控制红包模块,服务器开启一进程,并开启共享内存锁,之后根据序列值为用户分配子红包的金额,之后服务器关闭共享内存锁;若存在子红包未分配,则进入分配序列值模块。

数据库中建立红包维度表,包含发包者、库存、总金额、订单等,相关红包信息的表;数据库中建立抢红包记录表,子红包序列值、红包ID、子红包金额、分配情况等;在服务器数据缓存中处理好之后,再将两个数据库中的表进行修改,达到无锁等待,大幅提升性能,并降低数据库的压力。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1