CN112905310A - 数据处理方法、装置、设备及存储介质 - Google Patents

数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112905310A
CN112905310A CN202110341398.5A CN202110341398A CN112905310A CN 112905310 A CN112905310 A CN 112905310A CN 202110341398 A CN202110341398 A CN 202110341398A CN 112905310 A CN112905310 A CN 112905310A
Authority
CN
China
Prior art keywords
task
red packet
account
red
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110341398.5A
Other languages
English (en)
Inventor
陈鑫
吴奔
史丹丹
陈立伟
王计春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202110341398.5A priority Critical patent/CN112905310A/zh
Publication of CN112905310A publication Critical patent/CN112905310A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0239Online discounts or incentives

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置、设备及存储介质,涉及大数据领域。该方法包括:获取实时生成的红包发放任务,并将所述红包发放任务添加至待发放任务列表中;响应于批处理任务触发操作,从所述待发放任务列表中获取预设数量红包发放任务,并确定与各所述红包发放任务匹配的对公子账户;针对各所述红包发放任务,利用事务消息在所述红包发放任务匹配的对公子账户和用户账户之间进行红包转账。本发明实施例的技术方案,实现了通过任务批处理和账户拆分,提高大量红包发放任务的并发处理效率,实现电子红包的快速发放。

Description

数据处理方法、装置、设备及存储介质
技术领域
本发明实施例涉及大数据领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
随着电子商务的成熟发展,以各种形式向用户发放电子货币红包已经成为常用的营销手段,例如,通过抽奖的方式向用户发放店铺红包或者优惠券等,从而会出现大量用户同时中奖,需要对多个中奖红包并行发放的情况。
现有技术中,对于大量的红包发放任务,通常定时逐个扫取红包发放任务,性能浪费的同时还不能保证发放效率。利用数据库作为对公总账户逐笔红包扣除,需要保证事务安全的同时对数据库频繁的修改,从而对公账户的金额扣除会成为整个链路最大的性能问题。以及,在公私两个账户之间进行转账时,必须要对整体操作进行事务控制,会增加整体耗时和对锁资源的占用,进而导致并发瓶颈。
发明内容
本发明实施例提供一种数据处理方法、装置、设备及存储介质,以实现通过任务批处理和账户拆分,提高大量红包发放任务的并发处理效率,实现电子红包的快速发放。
第一方面,本发明实施例提供了一种数据处理方法,包括:
获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;
响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;
针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
可选的,在获取实时生成的红包发放任务之前,还包括:
将对公总账户拆分成多个对公子账户,并将各对公子账户的账户金额分别存储到对应的Redis数据库中进行管理;
其中,各对公子账户设置统一的余额阈值,且各对公子账户的余额大于等于余额阈值。
可选的,响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户,包括:
当检测到定时器的定时时间满足触发时间条件时,从待发放任务列表中获取预设数量的红包发放任务;
使用第一路由算法,将各红包发放任务分发至对应的服务器;
指示各服务器,使用第二路由算法,确定与各红包发放任务匹配的对公子账户。
可选的,指示各服务器,使用第二路由算法,确定与各红包发放任务匹配的对公子账户,包括:
针对各红包发放任务,指示与红包发放任务对应的服务器,使用一致性哈希算法对红包发放任务的序号以及子账户总数进行取模运算,并将运算结果作为与红包发放任务匹配的对公子账户的序号。
可选的,针对各红包发放任务,利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账,包括:
针对各红包发放任务,获取红包发放任务的红包金额和用户账户;
利用事务消息,在红包发放任务匹配的对公子账户中扣除红包金额,同时在用户账户中增加红包金额。
可选的,在利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,还包括:
分别将各对公子账户的余额与余额阈值进行比对;
如果存在余额小于余额阈值的目标对公子账户,则回收目标对公子账户,并将目标对公子账户的余额分配给其他对公子账户。
可选的,还包括:
计算预设时间长度内红包发放任务的处理速度;
如果处理速度小于任务处理速度阈值,则提高红包发放任务的处理优先等级,或者增加对公子账户的数量。
可选的,在针对各红包发放任务,利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,还包括:
将各对公子账户的扣除金额写入已发放任务列表,并将待发放任务列表与已发放任务列表进行比对;
如果两者不一致,则触发任务修正操作。
可选的,还包括:
当监听到各用户账户开立的消息时,生成与各用户账户对应的初始红包发放任务;
使用第一路由算法,将各初始红包发放任务同步分发至对应的服务器;
指示各服务器,使用第二路由算法,确定与各初始红包发放任务匹配的对公子账户;
针对各初始红包发放任务,利用事务消息在初始红包发放任务匹配的对公子账户和用户账户之间进行初始红包转账。
第二方面,本发明实施例还提供了一种数据处理装置,包括:
任务获取模块,用于获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;
批处理模块,用于响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;
红包发放模块,用于针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
第三方面,本发明实施例还提供了一种电子设备,设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的数据处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的数据处理方法。
本发明实施例中,通过获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账,解决了现有技术中大量红包发放任务处理效率较低的问题,实现了通过任务批处理和账户拆分,提高大量红包发放任务的并发处理效率,实现电子红包的快速发放。
附图说明
图1a是本发明实施例一中的一种数据处理方法的流程图;
图1b是本发明实施例一中的一种电子红包的发放流程图;
图2是本发明实施例二中的一种数据处理装置的结构示意图;
图3是本发明实施例三中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1a是本发明实施例一中的一种数据处理方法的流程图,本实施例可适用于对大量的红包发放任务进行并发处理的情况,该方法可以由数据处理装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在提供任务并发处理服务的电子设备中。如图1a所示,该方法包括:
步骤110、获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中。
本实施例中,当用户中奖后,会实时生成包括用户账户以及抽中的奖品在内的红包发放任务,当红包发放服务检测到有新的红包发放任务生成时,会获取新生成的红包发放任务并添加至待发放任务列表中,等待进行红包发放,如图1b所示。
可选的,在获取实时生成的红包发放任务之前,还可以包括:将对公总账户拆分成多个对公子账户,并将各对公子账户的账户金额分别存储到对应的Redis数据库中进行管理;其中,各对公子账户设置统一的余额阈值,且各对公子账户的余额大于等于余额阈值。
本实施例中,为了可以对多个红包发放任务并发处理,并且保证各个任务的事务安全,在开始红包发放之前,先将对公总账户进行账户拆分,得到多个对公子账户,如图1b所示。
示例性的,对公总账户的金额为10000元,根据红包发放请求的情况可以将对公总账户拆分为10个子账户,每个子账户1000元。其中,每个对公子账户还设置有余额阈值,每个对公子账户的余额必须大于等于余额阈值,才能保证红包发放时不会出现余额不足的情况。需要说明的是,各对公子账户的余额阈值可以根据业务需求分别进行修改。
本实施例中,为各个对公子账户分别关联一个Redis数据库,使用Redis数据库管理对公子账户的余额。这样做的原因,一方面是因为Redis是内存存储,可以保证高速的写入读取数据;另一方面是考虑到Redis的单线程模型可以保证对公子账户扣除红包的并发安全,保证交易的原子性,即,一个对公子账户即使同时执行多个红包发放任务,也能正确扣除每个任务的红包数额,可以解决并发安全性能问题。
步骤120、响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户。
本实施例中,可以通过定时器定时触发批处理任务,利用分布式批处理引擎的任务分发机制,将多个红包发放任务进行切片分发,以通过多台批处理服务器同时执行批处理任务,利用分布式批处理解决应用层级的大数据处理效率问题。
可选的,响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户,可以包括:当检测到定时器的定时时间满足触发时间条件时,从待发放任务列表中获取预设数量的红包发放任务;使用第一路由算法,将各红包发放任务分发至对应的服务器;指示各服务器,使用第二路由算法,确定与各红包发放任务匹配的对公子账户。
本实施例中,通过定时器进行批处理触发定时,例如,可以设置定时器每隔一秒就触发一次批处理任务,从待发放任务列表中依次获取预设数量的红包发放任务。并根据第一路由算法,例如一致性哈希算法等,计算出与各红包发放任务对应的批处理服务器,并将各红包发放任务分发至对应的服务器上。然后指示各服务器,使用第二路由算法计算与本机的红包发放任务匹配的对公子账户,以便于进行红包发放,如图1b所示。
可选的,指示各服务器,使用第二路由算法,确定与各红包发放任务匹配的对公子账户,可以包括:针对各红包发放任务,指示与红包发放任务对应的服务器,使用一致性哈希算法对红包发放任务的序号以及子账户总数进行取模运算,并将运算结果作为与红包发放任务匹配的对公子账户的序号。
示例性的,假设总共有10个对公子账户,红包发放任务的序号为3,则该红包发放任务对应的服务器根据一致性哈希算法,计算出3mod 10的值为3,因此该红包发放任务匹配的对公子账户的序号为3,即后续将从第三个对公子账户中扣除该红包发放任务的红包数额并增加到对应的用户账户中。
现有技术中,在电子红包从对公账户到私人账户的过程中,为了保证资金安全,需要对对公账户进行事务锁定,会成为性能瓶颈。本实施例通过路由算法,将对公总账户拆分为多个子账户,可以支持红包分发的账户并行扣款。同时,使用Redis数据库管理对公子账户的资金,利用Redis的事务原子性以及内存读取快速的特点,提高对公账户的红包发放效率问题和安全问题。
步骤130、针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
现有技术中,红包发放任务需要从对公账户扣除相应的红包金额后,再发放到对应的私人红包账户中,整个流程的性能瓶颈就在对公账户的金额安全扣除和私人账户以及发放流水的并发写入。本实施例通过事务消息,解决对公账户和对私账户同时变更的事务瓶颈问题。
可选的,针对各红包发放任务,利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账,可以包括:针对各红包发放任务,获取红包发放任务的红包金额和用户账户;利用事务消息,在红包发放任务匹配的对公子账户中扣除红包金额,同时在用户账户中增加红包金额。
示例性的,假设红包发放任务为向用户账户A发放20元红包,则可以先确定该红包发放任务匹配的对公子账户的Redis数据库B,然后利用事务消息,从Redis数据库B中的子账户余额中扣除20元,同时在用户账户A中增加20元。
本实施例中,利用Redis的事务原子性以及内存读取快速的特点,对公子账户即使同时扣除多个任务的红包数额,也会正确记录该对公子账户对各任务的红包扣除情况,提高对公账户的红包发放效率和账户安全。对公子账户扣除红包后,需要转入对应的用户红包账户,此时,利用事务消息,可以保证事务消息到达执行,同时可以保证事务消息和对公子账户的红包扣除事务一致性。利用事务消息解决写入耗时问题,将用户账户的红包金额增加异步处理。
可选的,在利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,还可以包括:分别将各对公子账户的余额与余额阈值进行比对;如果存在余额小于余额阈值的目标对公子账户,则回收目标对公子账户,并将目标对公子账户的余额分配给其他对公子账户。
本实施例中,为了保证发放红包时不会出现子账户余额不足的情况,在将对公总账户拆分成多个对公子账户之后,以及在对公子账户完成红包发放之后,需要分别将各对公子账户的余额与相应的余额阈值进行比对,以发现余额不足的目标对公子账户。如果存在目标对公子账户,则回收该目标对公子账户所对应的Redis数据库,并将目标对公子账户的余额分配到其他对公子账户的余额上,以减少其他对公子账户余额不足的概率。最终,所有红包发放任务完成后,所有的对公子账户应该全部被回收。
可选的,还可以包括:计算预设时间长度内红包发放任务的处理速度;如果处理速度小于任务处理速度阈值,则提高红包发放任务的处理优先等级,或者增加对公子账户的数量。
本实施例中,为了保证大量红包发放任务的并发处理效率,可以设置一个任务处理速度阈值,每间隔一段时间就计算该时间段内红包发放任务的处理速度,如果发现该时间段内的处理速度小于任务处理速度阈值,则认为任务并发处理效率较低,此时,可以将红包发放任务的处理优先级调高,将其他任务的处理优先级调低,或者,可以增加对公子账户的数量,增加任务处理的并发度。
可选的,在针对各红包发放任务,利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,还可以包括:将各对公子账户的扣除金额写入已发放任务列表,并将待发放任务列表与已发放任务列表进行比对;如果两者不一致,则触发任务修正操作。
本实施例中,为了进一步验证红包发放的正确性,及时发现红包的错发或者红包发放流水中存在的错误,可以将各对公子账户的扣除的每一笔红包金额分别写入已发放任务列表。然后将已发放任务列表中纪录的红包发放流水与待发放任务中的待发放红包任务进行一一比对,如果发现红包被发到错误的用户账户,或者将发到某用户账户中的红包金额记录错误,或者有红包发放任务被遗漏等情况,则触发任务修正操作,以对错误情况进行纠正。
可选的,还可以包括:当监听到各用户账户开立的消息时,生成与各用户账户对应的初始红包发放任务;使用第一路由算法,将各初始红包发放任务同步分发至对应的服务器;指示各服务器,使用第二路由算法,确定与各初始红包发放任务匹配的对公子账户;针对各初始红包发放任务,利用事务消息在初始红包发放任务匹配的对公子账户和用户账户之间进行初始红包转账。
本实施例中,除了可以对中奖的用户账户异步发放中奖红包之外,还可以在创建用户账户时,同步向多个用户账户并发的发放初始红包。可以通过消息监听机制,对用户账户开立事件进行监听,当监听到用户账户的创建消息后,生成与该用户账户对应的初始红包发放任务,例如发放红包100元。使用一致性哈希算法,确定与各初始红包发放任务对应的服务器。针对各初始红包发放任务,指示对应的服务器,使用一致性哈希算法对初始红包发放任务的序号以及子账户总数进行取模运算,并将运算结果作为与初始红包发放任务匹配的对公子账户的序号。进而,利用事务消息在初始红包发放任务匹配的对公子账户中扣除初始红包金额,同时在用户账户中增加初始红包金额。
本发明实施例中,通过获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账,解决了现有技术中大量红包发放任务处理效率较低的问题,实现了通过任务批处理和账户拆分,提高大量红包发放任务的并发处理效率,实现电子红包的快速发放。
实施例二
图2是本发明实施例二中的一种数据处理装置的结构示意图,本实施例可适用于对大量的红包发放任务进行并发处理的情况,该装置可以由硬件和/或软件来实现,并一般可以集成在提供任务并发处理服务的电子设备中。如图2所示,该装置包括:
任务获取模块210,用于获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;
批处理模块220,用于响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;
红包发放模块230,用于针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
本发明实施例中,通过获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账,解决了现有技术中大量红包发放任务处理效率较低的问题,实现了通过任务批处理和账户拆分,提高大量红包发放任务的并发处理效率,实现电子红包的快速发放。
可选的,还包括:账户拆分模块,用于在获取实时生成的红包发放任务之前,将对公总账户拆分成多个对公子账户,并将各对公子账户的账户金额分别存储到对应的Redis数据库中进行管理;
其中,各对公子账户设置统一的余额阈值,且各对公子账户的余额大于等于余额阈值。
可选的,批处理模块220,用于:
当检测到定时器的定时时间满足触发时间条件时,从待发放任务列表中获取预设数量的红包发放任务;
使用第一路由算法,将各红包发放任务分发至对应的服务器;
指示各服务器,使用第二路由算法,确定与各红包发放任务匹配的对公子账户。
可选的,批处理模块220,用于:
针对各红包发放任务,指示与红包发放任务对应的服务器,使用一致性哈希算法对红包发放任务的序号以及子账户总数进行取模运算,并将运算结果作为与红包发放任务匹配的对公子账户的序号。
可选的,红包发放模块230,用于:
针对各红包发放任务,获取红包发放任务的红包金额和用户账户;
利用事务消息,在红包发放任务匹配的对公子账户中扣除红包金额,同时在用户账户中增加红包金额。
可选的,还包括:
账户回收模块,用于在利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,分别将各对公子账户的余额与余额阈值进行比对;
如果存在余额小于余额阈值的目标对公子账户,则回收目标对公子账户,并将目标对公子账户的余额分配给其他对公子账户。
可选的,还包括:
调整模块,用于计算预设时间长度内红包发放任务的处理速度;
如果处理速度小于任务处理速度阈值,则提高红包发放任务的处理优先等级,或者增加对公子账户的数量。
可选的,还包括:
任务修正模块,用于在针对各红包发放任务,利用事务消息,在红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,
将各对公子账户的扣除金额写入已发放任务列表,并将待发放任务列表与已发放任务列表进行比对;
如果两者不一致,则触发任务修正操作。
可选的,还包括:
初始红包发放模块,用于当监听到各用户账户开立的消息时,生成与各用户账户对应的初始红包发放任务;
使用第一路由算法,将各初始红包发放任务同步分发至对应的服务器;
指示各服务器,使用第二路由算法,确定与各初始红包发放任务匹配的对公子账户;
针对各初始红包发放任务,利用事务消息在初始红包发放任务匹配的对公子账户和用户账户之间进行初始红包转账。
本发明实施例所提供的数据处理装置可执行本发明任意实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。
实施例三
图3是本发明实施例三中的一种电子设备的结构示意图。图3示出了适于用来实现本发明实施方式的示例性设备12的框图。图3显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据处理方法。
也即:实现一种数据处理方法,包括:
获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;
响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;
针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
实施例四
本发明实施例四还公开了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种数据处理方法,包括:
获取实时生成的红包发放任务,并将红包发放任务添加至待发放任务列表中;
响应于批处理任务触发操作,从待发放任务列表中获取预设数量红包发放任务,并确定与各红包发放任务匹配的对公子账户;
针对各红包发放任务,利用事务消息在红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (12)

1.一种数据处理方法,其特征在于,包括:
获取实时生成的红包发放任务,并将所述红包发放任务添加至待发放任务列表中;
响应于批处理任务触发操作,从所述待发放任务列表中获取预设数量红包发放任务,并确定与各所述红包发放任务匹配的对公子账户;
针对各所述红包发放任务,利用事务消息在所述红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
2.根据权利要求1所述的方法,其特征在于,在获取实时生成的红包发放任务之前,还包括:
将对公总账户拆分成多个对公子账户,并将各所述对公子账户的账户金额分别存储到对应的Redis数据库中进行管理;
其中,各所述对公子账户设置统一的余额阈值,且各所述对公子账户的余额大于等于所述余额阈值。
3.根据权利要求1所述的方法,其特征在于,响应于批处理任务触发操作,从所述待发放任务列表中获取预设数量红包发放任务,并确定与各所述红包发放任务匹配的对公子账户,包括:
当检测到定时器的定时时间满足触发时间条件时,从所述待发放任务列表中获取预设数量的红包发放任务;
使用第一路由算法,将各所述红包发放任务分发至对应的服务器;
指示各所述服务器,使用第二路由算法,确定与各所述红包发放任务匹配的对公子账户。
4.根据权利要求3所述的方法,其特征在于,指示各所述服务器,使用第二路由算法,确定与各所述红包发放任务匹配的对公子账户,包括:
针对各所述红包发放任务,指示与所述红包发放任务对应的服务器,使用一致性哈希算法对所述红包发放任务的序号以及子账户总数进行取模运算,并将运算结果作为与所述红包发放任务匹配的对公子账户的序号。
5.根据权利要求1所述的方法,其特征在于,针对各所述红包发放任务,利用事务消息,在所述红包发放任务匹配的对公子账户和用户账户之间进行红包转账,包括:
针对各所述红包发放任务,获取所述红包发放任务的红包金额和用户账户;
利用事务消息,在所述红包发放任务匹配的对公子账户中扣除所述红包金额,同时在所述用户账户中增加所述红包金额。
6.根据权利要求2所述的方法,其特征在于,在利用事务消息,在所述红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,还包括:
分别将各所述对公子账户的余额与所述余额阈值进行比对;
如果存在余额小于所述余额阈值的目标对公子账户,则回收所述目标对公子账户,并将所述目标对公子账户的余额分配给其他对公子账户。
7.根据权利要求1所述的方法,其特征在于,还包括:
计算预设时间长度内红包发放任务的处理速度;
如果所述处理速度小于任务处理速度阈值,则提高红包发放任务的处理优先等级,或者增加对公子账户的数量。
8.根据权利要求5所述的方法,其特征在于,在针对各所述红包发放任务,利用事务消息,在所述红包发放任务匹配的对公子账户和用户账户之间进行红包转账之后,还包括:
将各所述对公子账户的扣除金额写入已发放任务列表,并将所述待发放任务列表与所述已发放任务列表进行比对;
如果两者不一致,则触发任务修正操作。
9.根据权利要求1所述的方法,其特征在于,还包括:
当监听到各用户账户开立的消息时,生成与各所述用户账户对应的初始红包发放任务;
使用第一路由算法,将各所述初始红包发放任务同步分发至对应的服务器;
指示各所述服务器,使用第二路由算法,确定与各所述初始红包发放任务匹配的对公子账户;
针对各所述初始红包发放任务,利用事务消息在所述初始红包发放任务匹配的对公子账户和用户账户之间进行初始红包转账。
10.一种数据处理装置,其特征在于,包括:
任务获取模块,用于获取实时生成的红包发放任务,并将所述红包发放任务添加至待发放任务列表中;
批处理模块,用于响应于批处理任务触发操作,从所述待发放任务列表中获取预设数量红包发放任务,并确定与各所述红包发放任务匹配的对公子账户;
红包发放模块,用于针对各所述红包发放任务,利用事务消息在所述红包发放任务匹配的对公子账户和用户账户之间进行红包转账。
11.一种电子设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的数据处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的数据处理方法。
CN202110341398.5A 2021-03-30 2021-03-30 数据处理方法、装置、设备及存储介质 Pending CN112905310A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110341398.5A CN112905310A (zh) 2021-03-30 2021-03-30 数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110341398.5A CN112905310A (zh) 2021-03-30 2021-03-30 数据处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN112905310A true CN112905310A (zh) 2021-06-04

Family

ID=76109767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110341398.5A Pending CN112905310A (zh) 2021-03-30 2021-03-30 数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112905310A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113837740A (zh) * 2021-09-24 2021-12-24 北京京东拓先科技有限公司 账户结算方法、装置、电子设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113837740A (zh) * 2021-09-24 2021-12-24 北京京东拓先科技有限公司 账户结算方法、装置、电子设备和存储介质
CN113837740B (zh) * 2021-09-24 2024-02-06 北京京东拓先科技有限公司 账户结算方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US11593337B2 (en) Data processing method, device, and a storage medium
US20190102777A1 (en) Blockchain: automatic fork protection
CN109710695B (zh) 事务请求有效性识别和发起方法、装置、设备和介质
WO2021042733A1 (zh) 区块链事务处理方法、装置、计算机设备及存储介质
CN110188110A (zh) 一种构建分布式锁的方法及装置
WO2019169763A1 (zh) 电子装置、业务系统风险控制方法及存储介质
US8484342B2 (en) Organizing individual java client request flows into a single server transaction
JP2015007981A (ja) 要求の処理及び要求の分析の同時実行
CN115481058A (zh) 内存原子操作指令的执行方法、装置、访问模块及系统
RU2677384C1 (ru) Способ автоматического зачисления внесенных денежных средств при возникновении сбоев
CN115421922A (zh) 一种分布式系统的限流方法、装置、设备、介质及产品
CN112905310A (zh) 数据处理方法、装置、设备及存储介质
US20130125139A1 (en) Logging In A Computer System
CN109597697A (zh) 一种资源撮合处理方法及装置
CN110827001A (zh) 一种会计事件记账方法、系统、设备和存储介质
CN114327802B (zh) 区块链访问链外数据的方法、装置、设备和介质
CN114205156A (zh) 面向切面技术的报文检测方法、装置、电子设备及介质
CN114328731A (zh) 信息处理方法、装置、电子设备和存储介质
CN111784330B (zh) 基于数据库的伪队列结算方法、系统及电子设备
JP7268259B1 (ja) ブロックチェーン乱数取得方法、装置、機器および媒体
US7568121B2 (en) Recovery from failure in data storage systems
CN114285807B (zh) 一种报文信息管理方法、装置、服务器和存储介质
CN108121768A (zh) 分布式系统数据处理方法及装置
JP5086934B2 (ja) データ処理装置及びプログラム
CN115964536A (zh) 一种金融数字货币碎片化追溯方法、系统、设备以及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination