一种红包数据处理方法和装置的制造方法

文档序号:10725004阅读:429来源:国知局
一种红包数据处理方法和装置的制造方法
【专利摘要】本发明提供了红包数据处理方法和装置,该方法包括:根据发红包请求创建红包数据,所述红包数据包括缓存于分布式缓存的红包个数;根据一个或多个抢红包请求查询所述红包数据的红包个数,若红包个数不大于零,则返回抢红包失败信息,若红包个数大于零,则将所述红包个数减一,并将成功被抢的红包的关联信息插入到数据库。根据本发明,能够提高红包数据的处理效率,改善请求响应速度。
【专利说明】
一种红包数据处理方法和装置
技术领域
[0001 ]本发明涉及数据处理领域,更为具体而言,涉及一种红包数据处理方法和装置。
【背景技术】
[0002]电子红包是可以在网络平台上发送的无形的红包,用户只需要输入金额等相关信息就可以将红包分为一个或多个发送给一个或多个其他用户,或者由一个或多个用户抢至IJ。现有的红包数据发送过程中,接收或者抢红包的客户的数量比较大,而且抢的瞬间的并发量非常大,如何在瞬间并发量非常大的情形下保持较高的响应速度成为亟需解决的重要技术问题之一,此外,在保持较好的并发性的前提下,保持红包的发送记录等相关数据的一致性也成为亟需解决的重要技术问题之一。

【发明内容】

[0003]为解决上述技术问题,本发明提供了一种红包数据处理方法和装置,能够提高红包数据的处理效率,改善请求响应速度。
[0004]根据本发明实施方式的第一方面,提供了一种红包数据处理方法,该方法包括:根据发红包请求创建红包数据,所述红包数据包括缓存于分布式缓存的红包个数;根据一个或多个抢红包请求查询所述红包数据中的红包个数,若红包个数不大于零,则返回抢红包失败信息,若红包个数大于零,则将所述红包个数减一,并将成功被抢的红包的关联信息插入到数据库。
[0005]根据本发明实施方式的第二方面,提供了一种红包数据处理装置,所述装置包括:发红包模块,用于根据发红包请求创建红包数据,所述红包数据包括缓存于分布式缓存的红包个数;抢红包模块,用于:根据一个或多个抢红包请求查询所述红包数据中的红包个数,若红包个数不大于零,则返回抢红包失败信息,若红包个数大于零,则将所述红包个数减一,并将成功被抢的红包的关联信息插入到数据库。
[0006]本发明实施的红包数据处理方法和装置,将红包个数作为红包数据中的关键信息缓存于分布式缓存中,有利于提升抢红包过程中的数据访问效率;而且,在抢红包的过程中,首先查询红包个数,在剩余个数不大于零的情形下,直接返回失败信息,不再进行其他红包关联的数据操作,能够改善对抢红包请求的响应速度;而在确定红包个数大于零的情形下,才进行红包的相关数据处理,能够对抢红包请求进行有效的流量控制,改善对抢红包请求的响应速度。
【附图说明】
[0007]图1是根据本发明一种实施方式的积分红包的整体架构图;
[0008]图2是根据本发明一种实施方式的红包数据处理方法的流程示意图;
[0009]图3是根据本发明一种实施方式的发红包的流程示意图;
[0010]图4是根据本发明一种实施方式的查询抢红包的流程示意图;
[0011]图5是根据本发明一种实施方式的拆红包的流程示意图;
[0012]图6是根据本发明一种实施方式的领取红包的流程示意图;
[0013]图7是根据本发明一种实施方式的红包数据处理装置的结构示意图。
【具体实施方式】
[0014]以下结合附图和【具体实施方式】对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
[0015]本发明实施方式的红包可以是积分的形式或与积分类似的其他产品,例如,在某一机构(例如,银行等金融机构)累积的积分(例如,储蓄卡、信用卡的积分等),也可以是除了积分之外的其他形式,例如,货币等。在下文的实施方式中,主要以积分形式的红包为例进行描述,但本发明的红包还可以适用于非积分形式的情形,非积分形式的红包的数据处理过程,与积分形式的红包数据处理的流程类似,不同点主要在于对红包所涉及的积分或货币的数量调整,对于积分红包而言,可以通过积分系统的余额调整交易进行调整,对于货币红包而言,可以通过相应的货币管理系统对余额等进行调整。
[0016]对于积分形式的红包数据处理,红包的信息为积分。在发送红包的过程中,需要调用综合积分系统的积分余额调整交易,扣除发送红包的客户的相应的积分。客户在抢到红包,领取红包的过程中,需要调用综合积分系统的余额调整交易,将抢到的红包积分转到抢到红包的客户积分账户中。以建行银行的积分红包为例,客户发送、抢红包的都是积分红包,发送红包的客户需要为建设银行的客户,抢到红包的客户在成为建设银行的客户后,才能成功地将抢到的积分红包转到自身的积分账户中。
[0017]下面以图1为例,对积分红包的整体架构进行简单的说明。微信银行11,可以用于发起积分红包相关操作请求,并将抢红包消息通知发送给指定的联系人,例如,指定的微信朋友圈的联系人。分布式缓存12,用于保存红包数据的关键信息,例如,红包个数等,在本发明的一些实施方式中,红包的个数也可以通过红包的剩余个数进行描述;还用于将每个红包积分值计算逻辑串行化。综合积分红包模块13,可以接收前端客户积分红包请求,并对请求进行调度。数据库14,可以用于保存红包、红包发放及领取等红包的关联信息。综合积分系统15,可以接收综合积分红包模块余额调整交易请求,实现发红包扣除积分、领取红包增加积分等处理逻辑。综合积分红包模块13综合积分系统15之间可以基于超文本传输协议(Hyper Text Transfer Protocol ,HTTP)进行调用通信,还可以采用Netty的远程过程调用(Remote Procedure Call,RPC)协议,从而提高通信的通信效率和调用的并发度。
[0018]图2是根据本发明一种实施方式的红包数据处理方法的流程示意图。
[0019]如图2所示,本发明的红包数据处理方法可包括:步骤S11、SI2、S13和SI4。接下来,对上述的步骤进行具体的说明。
[0020]步骤Sll,根据发红包请求创建红包数据,其中,所述红包数据可包括缓存于分布式缓存的红包个数。例如,用户可以通过微信银行等接口发送发红包请求,例如,可包括积分的数量等。在接收到用户的发红包请求之后,根据发红包请求对请求涉及的积分状态、累积发送积分上限进行校验,如果校验未通过,在返回校验失败的提示信息,如果校验通过,则在数据库中创建发送的红包数据,红包状态为已提交。红包数据可包括:红包ID、发红包人/用户/客户的ID、法红包人/用户/客户的渠道ID、发红包人//用户/客户的渠道名称、发红包人/用户/客户的红包祝语、红包发布时间、红包类型、红包个数、红包总金额、积分失效日期、红包状态、抢红包消耗时间、最大红包金额、手机最佳红包客户ID、手气最佳红包微信ID中的一项或多项。然后,扣除发布红包的客户发红包所使用的积分值,该扣除操作是通过调用综合积分系统的积分余额调整交易进行。接着,判断扣除积分是否成功,若不成功,则更新红包状态,并通知客户未成功扣除积分;若成功扣除积分,则更新红包状态为余额调整成功。接着,在分布式缓存中创建红包记录,例如,可包括红包个数(或者剩余红包个数)以及剩余红包积分信息等,若缓存创建成功,则更新红包状态为以完成,若缓存创建未成功,则更新红包状态为缓存创建失败,抛出异常。本发明的分布式缓存可采用oraclecoherence,其能够基于key-value对数据进行分布式存储,具有较高的基于key的查询效率。
[0021]需要说明的是,本发明的红包数据处理方法不是必须包含上面描述的每个步骤,而是可以省去其中的一个或多个步骤。例如,客户的要发送的积分红包的积分充足的情形下,可以省去对积分状态和积分上限的验证步骤。
[0022]步骤S12,根据一个或多个抢红包请求查询所述红包数据的红包个数,若红包个数不大于零,即小于或等于零,则执行步骤S13,返回抢红包失败信息,若红包个数大于零,则执行步骤S14,将所述红包个数减一,并将成功被抢的红包的关联信息插入数据库。
[0023I 本发明的红包数据处理方法还可包括:在步骤S12之前,对抢红包请求的流量进行控制,例如,可以基于交易码进行控制,并且可以在每台服务器上进行流量控制,例如,将每台服务器的抢红包请求的并发交易的个数设置为预定数量,例如,20、15、25等。在对抢红包请求的流量进行控制之后,本发明的红包数据处理方法还可包括:判断发送抢红包请求的客户是否已经抢到过红包,若该客户已经抢到过红包,则返回该用户抢到的红包信息,若未抢到过红包,则在分布式缓存中查询红包个数,若没有剩余红包或剩余红包个数不大于零,则执行S13,直接返回抢红包失败的信息。其中,根据一个或多个抢红包请求在分布式缓存中查询红包数据的红包个数可包括:对一个或多个抢红包请求进行串行化处理,其中,串行化处理可通过分布式缓存的接口进行,例如,Enty processor接口 inty processor接口能够将并发的抢红包请求基于请求的主键(Key)进行串行化调度,先将客户的请求存于一个队列中,然后进行串行化调度、执行指定的处理逻辑。本发明利用enty processor接口的特性对抢红包请求进行串行化调度,保证了红包数据的一致性。
[0024]本发明的实施方式在确定客户未抢到过红包的情形下,根据抢红包请求查询红包个数,在红包个数不大于零的情形下,直接向客户返回失败信息,不再进行其他数据操作,对抢红包请求的并发流量进行限制,显著改善了对抢红包请求的响应速度;而且,通过将红包个数等关键信息缓存于分布式缓存,在抢红包请求瞬间高并发的情形下,能够显著改善红包个数等数据的读取效率,提高对用户的抢红包请求的响应速度。
[0025]在查询分布式缓存后,确定红包个数大于零的情形下,在执行步骤S14之前,本发明的红包数据处理方法还可包括:判断发送抢红包请求的客户是否具有抢红包的权限,若没有抢红包的权限,则向该客户返回其不具有抢红包的权限;若有抢红包的权限,则进一步判断该客户当月抢到的红包的积分是否超过预定的限值,若超过预定的限值,则向该客户返回已经超过预定的限值的消息,若未超过预定的限值,则返回抢红包的信息,弹出拆红包的界面。
[0026]在步骤S14中,将红包个数减一,并将成功被抢到的红包的关联信息插入到数据库。具体而言,可包括:在将红包个数减一之后,获取减一之后的红包个数,计算抢到的红包积分,并对分布式缓存中的红包的个数和积分进行相应的更新;接着,判断减一之后的红包个数是否大于或等于零,若否,则返回红包已被抢完的消息,而不再接收其他抢红包请求,有利于降低抢红包请求的并发量,改善对请求的响应速率。若是,也就是说,减一之后的红包个数大于或等于零,则向所述数据库中插入成功抢到的红包的关联信息,例如,成功拆红包的记录,该记录可包括红包ID、抢红包人的客户ID、抢红包人的渠道ID、抢红包人的渠道名称、红包金额、红包状态、抢红包时间、留言信息、手气最佳标志中的一种或多种等。抢到的红包状态初始标记为未领取。数据库为cassandra数据库。在插入成功的情形下,可以更新该用户本月已经抢到的积分值。在插入失败的情形下,更新分布式缓存中的红包个数,将红包个数加一,保证红包数据的一致性。
[0027]本发明采用cassandra数据库,对于红包个数较多并且红包发送明细记录较多的情形,可以满足从大量的数据中进行基于联合主键查询的查询性能,改善数据查询的处理效率。
[0028]本发明的红包数据处理方法还可包括:向数据库(例如,cassandra数据库)插入红包的关联信息之后,根据用户的红包领取请求查询成功被抢的红包的领取状态,若领取状态为未领取,则将所述领取请求所要领取的红包的领取状态更新为领取中,并向oraclecoherence数据库中插入所要领取的红包的领取流水,所述领取流水包括红包ID和领取红包的客户ID。若领取状态为已领取,则向用户返回红包已经领取的提示信息。在本发明的实施方式中,采用cassandra数据库保存红包发送的明细数据,例如,红包ID、抢红包人客户ID、渠道ID等,但cassandra数据库无法对插入主键相同的数据进行重复性判断,或者并发更新同一条数据时无法进行并发控制,在极端的情况下,无法对两个或多个并发地领取同一红包的红包领取请求进行并发控制,所以要向oracle coherene数据中插入一条领取流水,以进行红包领取请求进行并发控制。本发明的方法还包括:向向oracle coherence数据库中插入所要领取的红包的领取流水之后,判断流水插入是否成功,若否,则返回领取失败信息或者将所要领取的红包的领取状态恢复为未领取。具体而言,在流水插入未成功的情形下,若返回的信息是主键冲突异常,则返回领取失败信息;若返回的是其他异常信息,则将所要领取的红包的领取状态恢复为未领取。在流水插入成功的情形下,执行积分余额调整操作,在余额调整操作成功的情形下,更新红包状态为已领取,在不成功的情况下,更新状态为领取失败,抛出领取失败的异常信息。
[0029]下面结合具体的流程图说明本发明的红包数据处理的各个流程。
[0030]图3是根据本发明一种实施方式的发红包的流程示意图;图4是根据本发明一种实施方式的查询抢红包的流程示意图;图5是根据本发明一种实施方式的拆红包的流程示意图;以及图6是根据本发明一种实施方式的领取红包的流程示意图。
[0031]如图3所示,发红包的流程可包括:SlOl,发送发红包请求;S102,对积分状态、累积发放积分上限等进行校验,如果校验未通过,则执行步骤S103,返回相应的错误信息,若通过校验,则执行步骤S104,在数据库中创建发布的红包信息,状态为已提交;S105,扣除发布红包的客户的相应的积分,例如,可通过内部构件调用积分余额调整交易;S106,扣除积分成功,若不成功,则执行步骤S107,更新红包状态,通知客户,若成功,则执行步骤S108,更新红包状态为余额调整成功;S109,缓存中创建发布红包记录;S110,缓存创建成功,如果创建不成功,则执行步骤SI 11,更新红包状态为缓存创建失败,抛出异常,如果创建成功,则执行步骤S112,更新红包状态为已完成。
[0032]如图4所示,查询抢红包的流程可包括:S201,发送抢红包请求,S202,流量控制通过,若未通过流量控制,则执行步骤S203,返回系统繁忙信息,若通过,在执行步骤S204,判断客户是否已经抢到过红包,若抢到过,则执行步骤S205,返回抢到的红包信息,若未抢到过红包,则执行步骤S206,判断是否还剩红包,若没有剩余红包,则执行步骤S207,返回已经被抢完的信息,若还有剩余红包,则执行步骤S208,判断客户权限,若没有权限,则执行步骤S209,返回客户没有抢红包的权限,若有权限,则执行步骤S210,判断客户当月抢红包积分是否超过最大值,若超过,则执行步骤S211,返回客户当月抢红包积分已经超过最大值,若没有超过,则执行步骤S212,返回抢红包信息,弹出拆红包界面。
[0033]如图5所示,拆红包的流程可包括:S301,发送拆红包请求,S302,判断是否还有剩余红包,若没有,则执行步骤S303,返回红包已经被抢完信息,若还有,则执行步骤S304,剩余红包个数减一,并获取减一之后的数值,计算抢到的红包积分值,S305,判断剩余红包个数是否大于或等于零,若否,则执行步骤S303,若是,则执行步骤S306,插入成功拆开红包记录,S307,是否插入失败,若插入失败,则执行步骤S308,更新分布式缓存剩余红包信息,若否,执行步骤S309,更新本月已抢到的积分值,S310,返回成功抢到的红包信息。
[0034]如图6所示,领取红包的流程可包括:S401,发送领取红包的请求,S402,判断红包是否有效,若失效,则执行步骤S403,返回红包已失效的信息,若有效,则执行步骤S404,检查红包领取状态,若不是未领取,则执行步骤S405,返回已领取、领取中等状态信息,若未领取,则执行步骤S406,将红包状态更新为领取中,S407,插入红包领取流水,S408,插入状态判断,若失败,则执行步骤S409,如果返回主键冲突异常,返回领取失败信息,如果返回其他的异常信息,则恢复红包状态为未领取,若插入成功,则执行步骤S410,执行积分余额调整操作,S411,余额调整结果,若不成功,则执行步骤S412,更新状态为领取失败,抛出领取失败的异常信息,若成功,则执行步骤S413,更新红包状态为已领取。
[0035]下面以建设银行的积分红包发送为例,说明本发明的积分红包发送的流程,其中,包括用户通过终端设备(例如,手机等)的操作。客户发积分红包的流程可包括:1,用打开手机微信建行公众号;2,系统显示微信首页界面;3,用户选择悦生活中,并点击“综合积分”菜单,按照系统提示点击“发红包”;4,系统显示微信提示导航界面系统校验是否绑定卡,卡状态、积分账户状态是否正常,并显示校验结果(所有绑定微信建行卡的尾号列表及综合积分余额),查询积分账户信息交易,输入:客户编号;输出:是否绑定卡,积分余额,绑定微信建行卡的尾号列表,积分账户状态、有效日期、余额列表信息,绑定银行卡交易输入:客户编号,银行卡编号,输出:客户银行卡绑定结果;5,用户点击“点击这里,进行操作”;6,系统显示积分红包界面;7,用户输入红包数量、红包积分值及红包发放方式等信息点击“塞积分进红包”;8,系统显示积分红包信息确认界面;9,客户点击发送动态验证短信。客户收到短信后输入动态验证码,点击“确认”;10,系统显示发送红包界面,发红包交易,输入:客户编号、#微信ID、微信名称、红包类型、红包个数、积分总数、积分红包祝语,输出:发红包编号。
[0036]抢积分红包的流程可包括:I,用户打开抢红包界面;2,系统显示抢红包界面;3,用户点击积分红包;4,系统显示拆红包界面(备用事件流“系统显示红包已抢完界面”),查询抢红包信息交易:输入:客户ID,红包ID,输出:红包编号,剩余红包份数;5,用户点击“拆红包”;6,系统显示拆他人红包结果界面(备用事件流“系统显示拆本人红包结果界面”)(异常事件流“本月抢的积分已超过月累计的最高值”)(异常事件流“积分账户状态异常”),抢红包交易:输入:抢红包人客户ID,红包ID,抢红包人微信ID,抢红包人微信名称,输出:拆红包成功标志,发红包微信ID,发红包微信名称,积分红包祝语,抢到红包的积分值,红包总个数,抢红包总用时间,已被抢红包列表信息(微信名称,抢到红包的积分值,抢红包时间,留言,手气最佳标志);7,用户可选择自己“发红包”或者查看“我的红包记录”;8,系统显示查看红包界面(备用事件流“系统发红包界面”),查看发送的红包交易,输入:客户编号,微信ID,微信名称,输出:已发送积分额、累计发送的红包个数、发送的红包列表(红包积分总额、已发送积分额、发送日期、红包状态);9,客户点击我收到的红包;10,系统显示客户收到红包记录界面,查看客户收到的红包交易:输入:客户ID、微信ID、微信名称,输出:累计收到的积分值,累计收到的红包个数,手气最佳次数,抢到的红包列表信息(红包发布客户微信名称、抢到的红包积分值、抢红包日期、红包领取状态);11,客户点击“待领取” ;12,系统显示领取红包结果界面(备选事件流“领取抢红包积分需绑建行卡”)(异常事件流“积分账户状态异常”),领取积分红包交易:输入:客户编号,微信ID,微信名称,红包ID,抢到的红包积分值输出:领取红包结果。
[0037]上面结合附图和具体实施例描述了本发明的红包数据处理方法,下面将描述与上述方法对应的红包数据处理装置。
[0038]图7是根据本发明一种实施方式的红包数据处理装置的结构示意图。
[0039]如图7所示,红包数据处理装置可包括发红包模块71和抢红包模块72,其中发红包模块71和抢红包模块72之间可以进行数据通信,并且这些模块还可以与相关的其他数据处理模块(例如,银行的综合积分系统或者核心业务系统)等进行数据通信。本发明的红包数据处理装置除了包括发红包模块71和抢红包模块72之外,还可以包括领取模块。下面对各个模块进行具体的说明。
[0040]发红包模块71可根据发红包请求创建红包数据,所述红包数据包括缓存于分布式缓存的红包个数,其中,分布式缓存可采用oracle coherences数据库。其中,创建的具体内容可参见方法部分的描述。
[0041]抢红包模块72可用于根据一个或多个抢红包请求查询所述红包数据中的红包个数,若红包个数不大于零,即小于或等于零,则返回抢红包失败信息,若红包个数大于零,则将所述红包个数减一,并将成功被抢的红包的关联信息插入到数据库。其中,抢红包模块根据一个或多个抢红包请求查询所述红包数据中的红包个数包括:对一个或多个抢红包请求进行串行化处理,其中,所述串行化处理通过分布式缓存的接口进行。红包的关联信息包括红包ID、抢红包人的客户ID、抢红包人的渠道ID、抢红包人的渠道名称、红包金额、红包状态、抢红包时间、留言信息、手气最佳标志中的一种或多种,所述数据库为cassandra数据库。抢红包模块72在将所述红包个数减一之后,还判断减一之后的红包个数是否大于或等于零,若是,则将成功被抢的红包的关联信息插入到数据库,若否,则返回红包已被抢完的信息。抢红包模块72在插入所述红包的关联信息失败的情形下,还更新所述分布式缓存中的红包个数。关于抢红包模块的具体内容可参见上面方法部分的描述。
[0042]领取模块根据红包领取请求查询所述成功被抢的红包的领取状态,若领取状态为未领取,则将所述领取请求所要领取的红包的领取状态更新为领取中,并向oraclecoherence数据库中插入所要领取的红包的领取流水,所述领取流水包括红包ID和领取红包的客户ID。还可用于在向oracle coherence数据库中插入所要领取的红包的领取流水之后,判断流水插入是否成功,若否,则返回领取失败信息或者将所要领取的红包的领取状态恢复为未领取。关于红包领取的具体内容可参见上面方法部分的描述。
[0043]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0044]本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
【主权项】
1.一种红包数据处理方法,其特征在于,所述方法包括: 根据发红包请求创建红包数据,所述红包数据包括缓存于分布式缓存的红包个数; 根据一个或多个抢红包请求查询所述红包数据中的红包个数, 若红包个数不大于零,则返回抢红包失败信息, 若红包个数大于零,则将所述红包个数减一,并将成功被抢的红包的关联信息插入到数据库。2.根据权利要求1所述的方法,其特征在于,所述分布式缓存采用oraclecoherences数据库。3.根据权利要求2所述的方法,其特征在于,所述根据一个或多个抢红包请求查询所述红包数据中的红包个数包括: 对一个或多个抢红包请求进行串行化处理,其中,所述串行化处理通过分布式缓存的接口进行。4.根据权利要求2所述的方法,其特征在于,所述红包的关联信息包括红包ID、抢红包人的客户ID、抢红包人的渠道ID、抢红包人的渠道名称、红包金额、红包状态、抢红包时间、留言信息、手气最佳标志中的一种或多种,所述数据库为cassandra数据库。5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 根据红包领取请求查询所述成功被抢的红包的领取状态,若领取状态为未领取,则将所述领取请求所要领取的红包的领取状态更新为领取中,并向oracle coherence数据库中插入所要领取的红包的领取流水,所述领取流水包括红包ID和领取红包的客户ID。6.根据权利要求5所述的方法,其特征在于,所述方法还包括: 向oracle coherence数据库中插入所要领取的红包的领取流水之后,判断流水插入是否成功,若否,则返回领取失败信息或者将所要领取的红包的领取状态恢复为未领取。7.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在将所述红包个数减一之后,判断减一之后的红包个数是否大于或等于零,若是,则将成功被抢的红包的关联信息插入到数据库,若否,则返回红包已被抢完的信息。8.根据权利要求7所述的方法,其特征在于,所述方法还包括: 在插入所述红包的关联信息失败的情形下,更新所述分布式缓存中的红包个数。9.一种红包数据处理装置,其特征在于,所述装置包括: 发红包模块,用于根据发红包请求创建红包数据,所述红包数据包括缓存于分布式缓存的红包个数; 抢红包模块,用于:根据一个或多个抢红包请求查询所述红包数据中的红包个数,若红包个数不大于零,则返回抢红包失败信息,若红包个数大于零,则将所述红包个数减一,并将成功被抢的红包的关联信息插入到数据库。10.根据权利要求9所述的装置,其特征在于,所述分布式缓存采用oraclecoherences数据库。11.根据权利要求10所述的装置,其特征在于,所述抢红包模块根据一个或多个抢红包请求查询所述红包数据中的红包个数包括: 对一个或多个抢红包请求进行串行化处理,其中,所述串行化处理通过分布式缓存的接口进行。12.根据权利要求10所述的装置,其特征在于,所述红包的关联信息包括红包ID、抢红包人的客户ID、抢红包人的渠道ID、抢红包人的渠道名称、红包金额、红包状态、抢红包时间、留言信息、手气最佳标志中的一种或多种,所述数据库为cassandra数据库。13.根据权利要求12所述的装置,其特征在于,所述装置还包括: 领取模块,用于根据红包领取请求查询所述成功被抢的红包的领取状态,若领取状态为未领取,则将所述领取请求所要领取的红包的领取状态更新为领取中,并向oraclecoherence数据库中插入所要领取的红包的领取流水,所述领取流水包括红包ID和领取红包的客户ID。14.根据权利要求13所述的装置,其特征在于,所述领取模块,还用于向oraclecoherence数据库中插入所要领取的红包的领取流水之后,判断流水插入是否成功,若否,则返回领取失败信息或者将所要领取的红包的领取状态恢复为未领取。15.根据权利要求9所述的装置,其特征在于,所述抢红包模块,还用于在将所述红包个数减一之后,判断减一之后的红包个数是否大于或等于零,若是,则将成功被抢的红包的关联信息插入到数据库,若否,则返回红包已被抢完的信息。16.根据权利要求15所述的装置,其特征在于,所述抢红包模块,还用于在插入所述红包的关联信息失败的情形下,更新所述分布式缓存中的红包个数。
【文档编号】G06F17/30GK106095877SQ201610395873
【公开日】2016年11月9日
【申请日】2016年6月7日 公开号201610395873.6, CN 106095877 A, CN 106095877A, CN 201610395873, CN-A-106095877, CN106095877 A, CN106095877A, CN201610395873, CN201610395873.6
【发明人】安兴朝, 舒展, 邢磊, 杨涛, 倪一鸣, 谷林
【申请人】中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1