一种电子红包的数据处理方法、系统和装置与流程

文档序号:14677177发布日期:2018-06-12 21:39阅读:277来源:国知局
一种电子红包的数据处理方法、系统和装置与流程

本申请涉及数据库系统的技术领域,特别是涉及一种电子红包的数据处理方法、一种电子红包的数据处理系统和一种电子红包的数据处理装置。



背景技术:

在越来越多的电子商务平台中,向用户发放各式各样的电子红包(如商场红包,店铺红包,电子优惠券等)已成为常用的营销手段之一。用户在电子商务平台购买商品时可以使用电子红包从不同的途径减少花费。一种典型的应用场景为,用户在电子商务平台中购物时,如果领取了被配置有相应的金额及使用条件(如允许使用优惠,满额减,满额返利,星级客户优惠等)的电子红包,那么在满足该电子红包使用条件的基础上,可以针对用户所购买商品的价格,直接扣减该电子红包相应的金额后进行支付,或者在用户支付后返回相应金额的补偿。例如,用户领取了一个满20元减5元的红包,那么当用户选择了购买的目标商品为25元时,用户实际只需要支付20元。

在实际中,电子红包往往是基于一定的预算发放的,因而,电子红包发放涉及从总预算中扣除相应红包抵扣金额的处理,相应地,电子红包领用涉及在电子红包发放成功的情况下,在用户侧生成电子红包数据的处理。电子红包的发放与领用需要保证事务一致性,即发放成功的电子红包一定要领用成功。

电子红包的预算数据与发放到用户的红包数据往往存在于不同的数据库系统中,所以对于电子红包的发放与领用,通常是使用传统的分布式事务框架来进行管理,例如分布式事务XTS的方案,或者SQL Server的XA(由X/Open组织提出的分布式事务的规范)事务等,这些方案需要保证通用场景下的事务一致性,故其实现逻辑比较重,需要开发在对应的业务逻辑中按照其机制实现复杂的业务逻辑来解决潜在的不一对待性问题,开发复杂度及开发、运维成本均较高;再者,为协调分布式事务往往需要引入了另外一套独立的系统来,即需要在数据库系统外引用另外一套系统来进行跨数据库事务的一致性管理,系统资源开销较大;并且,一旦某个中间任务节点发生了失败,那么整个电子红包发放与领用的操作需要回滚,操作十分复杂,资源耗费也十分严重。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种电子红包的数据处理方法、一种电子红包的数据处理系统和一种电子红包的数据处理装置。

为了解决上述问题,本申请公开了一种电子红包的数据处理方法,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,所述的方法包括:

在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态;

按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

触发所述领用数据库系统执行所述待执行的电子红包领用事务。

可选地,所述发放事件表中设置有按照预设时间间隔生成的下次处理时间,所述按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务的步骤包括:

按照预设的时间间隔遍历所述发放事件表,提取当前所有红包待领用的状态且下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务。

可选地,所述发放事件表中设置有按照预设时间间隔生成的下次处理时间,所述按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务的步骤包括:

按照预设的时间间隔遍历所述发放事件表,提取当前所有不为红包已领用的状态下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务。

可选地,还包括:

在所述领用数据库系统成功执行所述待执行的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中标记红包已领用的状态。

可选地,还包括:

若所述领用数据库系统未成功执行所述待执行的电子红包领用事务,调整所述预设时间间隔。

可选地,在所述红包发放记录中标记红包待领用的状态的步骤之后,所述的方法还包括:

生成红包发放成功的提示信息。

可选地,所述触发所述领用数据库系统执行所述待执行的电子红包领用事务的步骤包括:

所述发放数据库系统调用预定义的领用服务对象,所述领用服务对象用于向所述领用数据库系统写入电子红包数据,所述电子红包数据包括所述待执行的电子红包领用事务对应的电子红包数据;

当接收到所述领用服务对象返回的写入电子红包数据成功的信息时,判定所述领用数据库系统成功执行相应的电子红包领用事务。

本申请还公开了一种电子红包的数据处理系统,所述电子红包的数据处理系统与发放数据库系统及领用数据库系统进行通信,所述发放数据库系统中设置有发放事件表,所述的系统包括:

记录插入模块,用于在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

状态更新模块,用于在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态;

事件表遍历模块,用于按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

领用补偿处理模块,用于触发所述领用数据库系统执行所述待执行的电子红包领用事务。

可选地,所述发放事件表中设置有按照预设时间间隔生成的下次处理时间,所述事件表遍历模块包括:

第一待执行事务确定子模块,用于按照预设的时间间隔遍历所述发放事件表,提取当前所有红包待领用的状态且下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务;

或者,

第二待执行事务确定子模块,用于按照预设的时间间隔遍历所述发放事件表,提取当前所有不为红包已领用的状态下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务。

可选地,还包括:

领用更新模块,用于在所述领用数据库系统成功执行所述待执行的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中标记红包已领用的状态。

可选地,还包括:

时间调整模块,用于在所述领用数据库系统未成功执行所述待执行的电子红包领用事务时,调整所述预设时间间隔。

可选地,还包括:

提示模块,与所述记录插入模块相连,用于生成红包发放成功的提示信息。

可选地,所述领用补偿处理模块包括:

服务调用子模块,用于调用预定义的领用服务对象;

所述领用服务对象用于向所述领用数据库系统写入电子红包数据,所述电子红包数据包括所述待执行的电子红包领用事务对应的电子红包数据;

通知子模块,用于在接收到所述领用服务对象返回的写入电子红包数据成功的信息时,判定所述领用数据库系统成功执行相应的电子红包领用事务。

本申请还公开了一种电子红包的数据处理装置,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,所述装置包括:

一个或多个处理器;

存储器;和

一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:

在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态;

按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

触发所述领用数据库系统执行所述待执行的电子红包领用事务。

本申请还公开了一种电子红包的数据处理方法,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,所述的方法包括:

在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态。

本申请还公开了一种电子红包的数据处理方法,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,所述的方法包括:

按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

触发所述领用数据库系统执行所述待执行的电子红包领用事务。

本申请还公开了一种电子红包的数据处理系统,所述电子红包的数据处理系统与发放数据库系统及领用数据库系统进行通信,所述发放数据库系统用于执行电子红包发放事务,所述领用数据库系统用于执行电子红包领用事务,其中,所述发放数据库系统中设置有发放事件表,所述电子红包的数据处理系统包括:

程序对象模块,用于触发所述发放数据库系统执行电子红包发放事务;在所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;然后调用领用服务对象模块;

领用服务对象模块,用于触发所述领用数据库系统执行电子红包领用事务,在所述领用数据库系统成功执行相应的电子红包领用事务后,通知所述程序对象模块;

所述程序对象模块还用于在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态。

本申请还公开了一种装置,包括:

一个或多个处理器;和

其上存储的一个或多个计算机可读介质中的指令,由所述一个或多个处理器执行时,导致所述装置执行如所述电子红包的数据处理的方法。

本申请还公开了一个或多个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得终端设备执行所述电子红包的数据处理的方法。

本申请实施例包括以下优点:

本申请实施例在电子红包的发放数据库系统中设置发放事件表,在成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录。由于在发放事件表中的记录操作与电子红包的发放操作处于同一个事务当中,所以可以有效保证事务一致性,从而以较低的代价达到保证事务一致性的目的。同时,由于仅在已有的发放事务中加入了一条插入语句来增加相应的红包发放记录,并没有增加过多的开发复杂度,开发成本很低。

再者,针对在电子红包发放完成后,没有完成领用的电子红包数据,可以通过所述发放事件表中积压的待处理记录的方式反应出来,从而使得很容易做监控和故障恢复,也不需要引入复杂的一致性管理系统,系统开销也非常小。

附图说明

图1是本申请的一种电子红包的数据处理方法实施例1的步骤流程图;

图2是本申请的一种电子红包的数据处理的任务示意图;

图3所示的电子红包发放及领用事务执行的信令流程图;

图4是本申请的一种电子红包的数据处理方法实施例2的步骤流程图;

图5是本申请的一种电子红包的数据处理方法实施例3的步骤流程图;

图6是本申请的一种电子红包的数据处理系统实施例1的结构框图;

图7是本申请的一种电子红包的数据处理系统实施例2的结构框图;

图8本申请一种示例性系统实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

本申请的构思易于进行各种修改和替代形式,其具体实施例已经通过附图的方式示出,并将在这里详细描述。然而,应该理解,上述内容并不是用来将本申请的构思限制为所公开的具体形式,相反地,本申请的说明书和附加权利要求书意欲覆盖所有的修改、等同和替代的形式。

本说明书中的“一个实施例”,“实施例”,“一个具体实施例”等,表示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括或可以不必然包括该特定特征、结构或特性。此外,这样的短语不一定指的是同一实施例。另外,在联系一个实施例描述特定特征、结构或特性的情况下,无论是否明确描述,可以认为本领域技术人员所知的范围内,这样的特征、结构或特性也与其他实施例有关。另外,应该理解的是,“在A,B和C的至少一个”这种形式所包括的列表中的条目中,可以包括如下可能的项目:(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。同样,“A,B或C中的至少一个”这种形式列出的项目可能意味着(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。

在一些情况下,所公开的实施例可以被实施为硬件、固件、软件或其任意组合。所公开的实施例也可以实现为携带或存储在一个或多个暂时的或者非暂时的机器可读(例如计算机可读)存储介质中的指令,该指令可以被一个或多个处理器执行。机器可读存储介质可以实施为用于以能够被机器读取的形式存储或者传输信息的存储装置、机构或其他物理结构(例如易失性或非易失性存储器、介质盘、或其他媒体其它物理结构装置)。

在附图中,一些结构或方法特征可以以特定的安排和/或排序显示。然而,优选地,这样的具体安排和/或排序并不是必要的。相反,在一些实施方案中,这样的特征可以以不同的方式和/或顺序排列,而不是如附图中所示。此外,特定的附图中的结构或方法特征中所包含的内容,不意味着暗示这种特征是在所有实施例是必须的,并且在一些实施方案中,可能不包括这些特征,或者可能将这些特征与其它特征相结合。

一般而言,各电子商务平台中使用的电子红包有多种形式,除上述背景技术中的举例之外,还有诸如可以刷某个银行的银行卡则相应打折的红包,还有在全平台(如淘宝)中不限商户使用的红包等。如对电子红包简单分类,可划分为金本位(Gold standard,是以黄金为本位币的货币制度。在金本位制下,每单位的货币价值等同于若干重量的黄金(即货币含金量))的电子红包,以及,非金本位的电子红包。

金本位的电子红包通常需要占用实际的现实资金储备,其管理涉及财务数据。相应地,电子红包的发放需要真实资金的预算,而被电子红包所抵扣的金额也是计入成交额中的,只是用户不需要支付这一部分金额而已。如需要计入商城资金储备和成交额的平台通用红包就是一种金本位的电子红包。

非金本位的电子红包的管理往往不占用现实资金储备,其管理不涉及财务数据,相应地,电子红包的发放不做真实资金的预算,被抵扣的金额不计入成交额,如不限量发放的优惠券就是一种非金本位的电子红包。

关于金本位的电子红包与非金本位的电子红包,以下再通过一个示例来简单阐明其差异。假设在税额独立计算的应用场景下,一个商品的原价为300元,税率是10%,在使用50元非金本位的电子红包的情况下,用户实际需要支付商品的价格为:250元抵扣的商品价格+25元税款=275元;在使用50元金本位的电子红包的情况下,用户实际需要支付商品的价格为:300元商品原价+30元税款-50元抵扣金额=280元。

本申请实施例的应用不限于上述金本位的电子红包或非金本位的电子红包,而主要侧重于需要保证电子红包的发放与电子红包的领用事务一致性(即发放成功的电子红包一定要领用成功)的应用,从实际中来看,本申请实施例更适于金本位的电子红包的应用场景。

参照图1,示出了本申请的一种电子红包的数据处理方法实施例1的步骤流程图,在本申请实施例中,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,本申请实施例具体可以包括如下步骤:

步骤101,在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

步骤102,在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态;

步骤103,按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

步骤104,触发所述领用数据库系统执行所述待执行的电子红包领用事务。

为使本领域技术人员更好地理解本申请实施例,以下举例说明一种典型的电子红包发放及领用过程:

电子商务网站按预算向其买家用户发放红包,即触发电子红包的发放数据库系统执行电子红包发放事务;

买家用户登录电子商务网站后相应领取发放的电子红包,即触发领用数据库系统执行相应的电子红包领用事务。

本申请实施例中,所述发放数据库系统及领用数据库系统可以为电子商务网站内负责处理电子红包发放事务和领用事务的服务器,服务器集群或云处理器等,本申请对此不作限制。

为保证电子红包的发放与领用的事务一致性,即发放成功的电子红包需要领用成功,本申请实施例引入了发放事件表hjbus,所述hjbus设置在所述发放数据库系统中,具有参考图2所示的任务处理示意图。当执行电子红包的发放动作(图2中S21资金发放)时,仅需要在相应的电子红包发放事务中增加一条插入语句(图2中S22以事务方式插入hjbus任务),即可实现在hjbus中插入一条红包发放记录,表明一次电子红包的发放操作执行成功了,此时该红包发送记录可以标记为红包待领用的状态。

当电子红包的发放操作执行成功后,并且,同步执行电子红包的领用操作也成功了(图2中步骤S23资金领用),那么就标记上一步插入的红包发放记录的状态为红包已领用的状态。

在本申请的一种优选实施例中,不论上述与发放相应的同步领用操作执行成功与否,均可以生成红包发放成功的提示信息,以返回给用户或其它设备红包发放已经成功的结果。

具体可以参考图3所示的电子红包发放及领用事务执行的信令流程图,执行电子红包发放的程序A,在所述发放数据库系统301成功执行电子红包发放事务后,执行步骤S31:在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;然后执行步骤S32:所述程序A调用预定义的领用服务对象B(RPC(Remote Procedure Call Protocol)——远程过程调用协议)服务),所述领用服务对象B执行步骤S33:向所述领用数据库系统302写入电子红包数据,当调用领用服务对象B接收到领用数据库系统302返回的领用成功的通知(S34)后,通知程序A红包领用成功(S35),于是程序A执行步骤S36:在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态。由于发放事件表设置在所述发放数据库系统301中,即在发放事件表中的记录操作与电子红包的发放操作处于同一个事务当中,所以可以有效保证事务一致性。

本申请实施例还增加了额外的调度任务(图2中步骤S24schedule调度任务),按照预设的时间间隔遍历hjbus,扫描hjbus表中未成功的记录(红包待领用的状态的记录,或者为,不为红包已领用的状态的记录),从而确定待执行的电子红包领用事务。

作为本申请实施例优选的一种示例,所述hjbus中可以设置按照预设时间间隔生成的下次处理时间,所述步骤103可以包括如下子步骤:

子步骤S1031,按照预设的时间间隔遍历所述发放事件表,提取当前所有红包待领用的状态且下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务。

或者,

子步骤S1032,按照预设的时间间隔遍历所述发放事件表,提取当前所有不为红包已领用的状态下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务。

在确定待执行的电子红包领用事务后,即可进行异步的领用补偿操作,即触发所述领用数据库系统执行所述待执行的电子红包领用事务。

作为本申请实施例具体应用的一种示例,可以通过如下方式触发所述领用数据库系统执行所述待执行的电子红包领用事务:

所述发放数据库系统调用预定义的领用服务对象,所述领用服务对象用于向所述领用数据库系统写入电子红包数据,所述电子红包数据包括所述待执行的电子红包领用事务对应的电子红包数据;

当接收到所述领用服务对象返回的写入电子红包数据成功的信息时,判定所述领用数据库系统成功执行相应的电子红包领用事务。

其中,所述预定义的领用服务对象可以为RPC(Remote Procedure Call Protocol)——远程过程调用协议)服务,RPC服务是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。在本例中,这个RPC服务用于在领用数据库系统写入相应的电子红包数据。所述发放数据库系统会调用这个RPC服务,当该RPC服务返回成功时,则表明领用数据库系统成功执行了相应的电子红包领用事务。

在本申请的一种优选实施例中,在所述领用数据库系统成功执行所述待执行的电子红包领用事务后,可以在hjbus中提取相应的红包发放记录,并在所述红包发放记录中标记红包已领用的状态。

即在电子红包领用成功时,才更新hjbus记录的状态为红包已领用的状态。

在具体实现中,本申请实施例还可以包括如下步骤:

若所述领用数据库系统未成功执行所述待执行的电子红包领用事务,调整所述预设时间间隔。

针对实际中再次发生红包领用失败的情形,应用本申请实施例可以逐步降低该hjbus记录的重试频率,并通过相应的监控手段通知相关人士进行关注。

需要说明的是,本申请实施例中所指“红包待领用的状态”,“红包已领用的状态”均仅用于描述电子红包当前处理的状态,本领域技术人员任意设置均是可行的,如记录为“未成功”或“已成功”,“0”或“1”等,本申请对此不作任何限制。

为使本领域技术人员更好地理解本申请实施例,以下示出一种应用本申请实施例进行电子红包数据处理的示例:

在发放数据库系统中设置发放事件表hjbus,hjbus包含如下的信息:

内部Id,创建时间,所属用户Id,消息主题,消息体,发送方IP地址,消息处理次数,消息处理进度,下次处理时间,跟踪上下文。

在基于所述发放数据库系统成功执行电子红包发放事务,插入的红包发放记录包括如下信息:

内部Id:100000753,

创建时间:2016-11-10 09:00:00,

所属用户Id:3240753,

消息主题:红包发放成功,

消息体:为用户100321发放了5元用户,活动名称为双11红包,红包Id为10043530321,

发送方IP地址:10.172.86.34

消息处理次数:0

消息处理进度:未消费

下次处理时间:2016-11-10 09:00:01

跟踪上下文:

当发放事务完成后,进行同步的领用(基于所述领用数据库系统成功执行相应的电子红包领用事务),若同步领用完成,则会标记前述消息为成功,即更新消息的处理进度为:订阅者已处理。

在实际中,hjbus是同一个消息可以关联多个一致性依赖方,在红包发放与领用的场景,可以仅配置为一对一的关联。

相应地,Schedule调度任务的逻辑是:

间隔一定的时间(比如1秒),查询hjbus中,消息处理进度不为“订阅者已处理”且下次处理时间早于当前时间的数据。

查询到这些数据后,会根据消息的主题与订阅者关系,进行消息的处理。比如红包发放与领用的场景,就是进行红包的领用操作,而该操作需要的所有信息,都存储在消息体中,即需要为用户100321产生一个5元的双11红包,且其内部id为10043530321。

再处理完扫描到的一批待处理的消息后,根据一定的算法,决定休息一段时间,然后再一次发起查询待处理消息的动作。然后如此往复。

在具体实现中,本申请实施例中不增加新的hjbus,而在发放数据库系统的原始业务操作记录表中增加相应的红包待领用或已领用状态,下次处理时间等字段,即将hjbus表中的主要字段,全部增加到发放数据库系统业务操作记录表中,同样可以实现本申请的发明目的,以上基于发放事件表的处理仅仅为便于本领域技术人员理解而用作示例说明,本申请对此不作限制。

应用本申请实施例,由于在hjbus中的记录操作与电子红包的发放操作处于同一个事务当中,所以可以有效保证事务一致性,从而以较低的代价达到保证事务一致性的目的。同时,由于仅在已有的发放事务中加入了一条插入语句来增加相应的红包发放记录,并没有增加过多的开发复杂度,开发成本很低。再者,针对在电子红包发放完成后,没有完成领用的电子红包数据,可以通过所述发放事件表中积压的待处理记录的方式反应出来,从而使得很容易做监控和故障恢复,也不需要引入复杂的一致性管理系统,系统开销也非常小。

参照图4,示出了本申请的一种电子红包的数据处理方法实施例2的步骤流程图,在本申请实施例中,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,本申请实施例具体可以包括如下步骤:

步骤401,在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

步骤402,在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态。

参照图5,示出了本申请的一种电子红包的数据处理方法实施例3的步骤流程图,在本申请实施例中,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,本申请实施例具体可以包括如下步骤:

步骤501,按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

步骤502,触发所述领用数据库系统执行所述待执行的电子红包领用事务。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图6,示出了本申请一种电子红包的数据处理系统实施例1的结构框图,所述电子红包的数据处理系统与发放数据库系统及领用数据库系统进行通信,所述发放数据库系统中设置有发放事件表,所述的系统实施例具体可以包括如下模块:

记录插入模块61,用于在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

状态更新模块62,用于在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态;

事件表遍历模块63,用于按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

领用补偿处理模块64,用于触发所述领用数据库系统执行所述待执行的电子红包领用事务。

在本申请的一种优选实施例中,所述发放事件表中可以设置按照预设时间间隔生成的下次处理时间,在这种情况下,所述事件表遍历模块63可以包括如下子模块:

第一待执行事务确定子模块,用于按照预设的时间间隔遍历所述发放事件表,提取当前所有红包待领用的状态且下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务;

或者,

第二待执行事务确定子模块,用于按照预设的时间间隔遍历所述发放事件表,提取当前所有不为红包已领用的状态下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务。

作为本申请实施例具体应用的一种示例,所述系统实施例还可以包括以下模块:

领用更新模块,用于在所述领用数据库系统成功执行所述待执行的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中标记红包已领用的状态。

在具体实现中,所述系统实施例还可以包括以下模块:

时间调整模块,用于在所述领用数据库系统未成功执行所述待执行的电子红包领用事务时,调整所述预设时间间隔。

在本申请的一种优选实施例中,所述系统实施例还可以包括以下模块:

提示模块,与所述记录插入模块相连,用于生成红包发放成功的提示信息。

在具体实现中,所述领用补偿处理模块可以包括如下子模块:

服务调用子模块,用于调用预定义的领用服务对象;

所述领用服务对象用于向所述领用数据库系统写入电子红包数据,所述电子红包数据包括所述待执行的电子红包领用事务对应的电子红包数据;

通知子模块,用于在接收到所述领用服务对象返回的写入电子红包数据成功的信息时,判定所述领用数据库系统成功执行相应的电子红包领用事务。

参照图7,示出了本申请一种电子红包的数据处理系统实施例2的结构框图,在本实施例中,所述电子红包的数据处理系统与发放数据库系统72及领用数据库系统73进行通信,所述发放数据库系统72用于执行电子红包发放事务,所述领用数据库系统73用于执行电子红包领用事务,其中,所述发放数据库系统72中设置有发放事件表,所述电子红包的数据处理系统具体可以包括以下模块:

程序对象模块71,用于触发所述发放数据库系统72执行电子红包发放事务;在所述发放数据库系统72成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;然后调用领用服务对象模块74;

领用服务对象模块74,用于触发所述领用数据库系统73执行电子红包领用事务,在所述领用数据库系统73成功执行相应的电子红包领用事务后,通知所述程序对象模块71;

所述程序对象模块71还用于在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态。

在本申请的一种优选实施例中,所述系统实施例还可以包括以下模块:

事件表遍历模块,用于按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

领用补偿处理模块,用于触发所述领用数据库系统执行所述待执行的电子红包领用事务。

对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请实施例还提供了一种电子红包的数据处理装置,所述电子红包具有发放数据库系统及领用数据库系统,所述发放数据库系统中设置有发放事件表,所述装置包括:

一个或多个处理器;

存储器;和

一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,所述一个或多个模块具有如下功能:

在基于所述发放数据库系统成功执行电子红包发放事务后,在所述发放事件表中增加相应的红包发放记录,并在所述红包发放记录中标记红包待领用的状态;

在基于所述领用数据库系统成功执行相应的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中将所述红包待领用的状态更新为红包已领用的状态;

按照预设的时间间隔遍历所述发放事件表,依据所述红包待领用的状态或者红包已领用的状态,确定待执行的电子红包领用事务;

触发所述领用数据库系统执行所述待执行的电子红包领用事务。

可选地,所述发放事件表中设置有按照预设时间间隔生成的下次处理时间,该一个或多个模块可以具有如下功能:

按照预设的时间间隔遍历所述发放事件表,提取当前所有红包待领用的状态且下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务;或者,

按照预设的时间间隔遍历所述发放事件表,提取当前所有不为红包已领用的状态下次处理时间早于当前时间的红包发放记录,依据该红包发放记录确定待执行的电子红包领用事务。

可选地,该一个或多个模块可以具有如下功能:

在所述领用数据库系统成功执行所述待执行的电子红包领用事务后,在所述发放事件表中提取相应的红包发放记录,并在所述红包发放记录中标记红包已领用的状态。

可选地,该一个或多个模块可以具有如下功能:

若所述领用数据库系统未成功执行所述待执行的电子红包领用事务,调整所述预设时间间隔。

可选地,该一个或多个模块可以具有如下功能:

生成红包发放成功的提示信息。

可选地,该一个或多个模块可以具有如下功能:

所述发放数据库系统调用预定义的领用服务对象,所述领用服务对象用于向所述领用数据库系统写入电子红包数据,所述电子红包数据包括所述待执行的电子红包领用事务对应的电子红包数据;

当接收到所述领用服务对象返回的写入电子红包数据成功的信息时,判定所述领用数据库系统成功执行相应的电子红包领用事务。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本公开的实施例可被实现为使用任意适当的硬件和/或软件进行想要的配置的系统。图8示意性地示出了可被用于实现本公开中所述的各个实施例的示例性系统600。

对于一个实施例,图8示出了示例性系统600,该系统具有一个或多个处理器602、被耦合到(一个或多个)处理器602中的至少一个的系统控制模块(芯片组)604、被耦合到系统控制模块604的系统存储器606、被耦合到系统控制模块604的非易失性存储器(NVM)/存储设备608、被耦合到系统控制模块604的一个或多个输入/输出设备610,以及被耦合到系统控制模块606的网络接口612。

处理器602可包括一个或多个单核或多核处理器,处理器602可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。

在一些实施例中,系统600可包括具有指令的一个或多个计算机可读介质(例如,系统存储器606或NVM/存储设备608)以及与该一个或多个计算机可读介质相合并被配置为执行指令以实现模块从而执行本公开中所述的动作的一个或多个处理器602。

对于一个实施例,系统控制模块604可包括任意适当的接口控制器,以向(一个或多个)处理器602中的至少一个和/或与系统控制模块604通信的任意适当的设备或组件提供任意适当的接口。

系统控制模块604可包括存储器控制器模块,以向系统存储器606提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。

系统存储器606可被用于例如为系统600加载和存储数据和/或指令。对于一个实施例,系统存储器606可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器606可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。

对于一个实施例,系统控制模块604可包括一个或多个输入/输出控制器,以向NVM/存储设备608及(一个或多个)输入/输出设备610提供接口。

例如,NVM/存储设备608可被用于存储数据和/或指令。NVM/存储设备608可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。

NVM/存储设备608可包括在物理上作为系统600被安装在其上的设备的一部分的存储资源,或者其可被该设备访问丽不必作为该设备的一部分。例如,NVM/存储设备608可通过网络经由(一个或多个)输入/输出设备610进行访问。

(一个或多个)输入/输出设备610可为系统600提供接口以与任意其他适当的设备通信,输入/输出设备610可以包括通信组件、音频组件、传感器组件等。网络接口612可为系统600提供接口以通过一个或多个网络通信,系统600可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合进行无线通信。

对于一个实施例,(一个或多个)处理器602中的至少一个可与系统控制模块604的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器602中的至少一个可与系统控制模块604的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器602中的至少一个可与系统控制模块604的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器602中的至少一个可与系统控制模块604的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。

在各个实施例中,系统600可以但不限于是:服务器、服务器集群、云处理设备等。在各个实施例中,系统600可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统600包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。

其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本申请实施例中各方法步骤的指令(instructions)。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种电子红包的数据处理方法、一种电子红包的数据处理系统和一种电子红包的数据处理装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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