用于处理事务的方法、装置、设备及可读存储介质制造方法及图纸

技术编号:27231795 阅读:20 留言:0更新日期:2021-02-04 11:58
本申请实施例公开了一种用于处理事务的方法、装置、电子设备及计算机可读存储介质,涉及事务处理技术领域。该方法的一具体实施方式包括:将待处理事务拆分为多个子事务,并选用与子事务数量一致的多个目标子线程来并行处理各子事务;控制子事务执行成功的目标子线程处于等待状态、控制子事务执行失败的目标子线程重复执行对应的子事务;当重复执行的子事务在满足预设条件的情况下被成功执行时,生成待处理事务并行处理成功的信号。该实施例提供了一种针对事务的多线程并行处理方式,在主线程的协调下,可将待处理事务拆分为多个子事务,并对应提交至多个子线程来并行执行,而通过仅使执行失败的子线程进行重试,可减少对运算资源的消耗,提升性能。提升性能。提升性能。

【技术实现步骤摘要】
用于处理事务的方法、装置、设备及可读存储介质


[0001]本申请实施例涉及多线程
,尤其涉及事务处理


技术介绍

[0002]事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
[0003]现有技术提供了一种通过串行的方式来依次执行事务开始至事务结束的所有操作的事务处理方式。

技术实现思路

[0004]本申请实施例提出了一种用于处理事务的方法、装置、电子设备及计算机可读存储介质。
[0005]第一方面,本申请实施例提出了一种用于处理事务的方法,包括:将待处理事务拆分为多个子事务,并选用与子事务数量一致的多个目标子线程来并行处理各子事务;控制子事务执行成功的目标子线程处于等待状态、控制子事务执行失败的目标子线程重复执行对应的子事务;当重复执行的子事务在满足预设条件的情况下被成功执行时,生成待处理事务并行处理成功的信号。
[0006]在一些实施例中,该用于处理事务的方法还包括:当重复执行的子事务在满足预设条件的情况下仍未被成功执行时,生成待处理事务并行处理失败的信号。
[0007]在一些实施例中,该用于处理事务的方法还包括:当存在与待处理事务对应的替代事务时,利用各目标子线程并行处理替代事务拆分出的各替代子事务;当任意替代子事务执行失败时,生成待处理事务的替代事务并行处理失败的信号;当所有替代子事务均执行成功时,生成待处理事务的替代事务并行处理成功的信号。
[0008]在一些实施例中,该用于处理事务的方法还包括:统计预设时间段内待处理事务和对应的替代事务的执行成功率;根据执行成功率调整待处理事务和对应的替代事务的执行优先级。
[0009]在一些实施例中,预设条件包括不超过预设最大重复执行次数、不超过预设最大重复执行耗时、不超过预设最大连续执行失败次数中的至少一项。
[0010]在一些实施例中,选用与子事务数量一致的目标子线程来并行处理各子事务,包括:确定子事务的第一数量;从存储有可重复利用子线程的预设线程池中选取出第一数量的目标子线程;将第一数量的子事务通过预设线程池一一提交至第一数量的目标子线程;当各目标子线程均成功接收到对应的子事务时,控制各目标子线程并行处理对应的子事务。
[0011]第二方面,本申请实施例提出了一种用于处理事务的装置,包括:事务拆分及并行处理单元,被配置成将待处理事务拆分为多个子事务,并选用与子事务数量一致的多个目标子线程来并行处理各子事务;等待及重复执行单元,被配置成控制子事务执行成功的目标子线程处于等待状态、控制子事务执行失败的目标子线程重复执行对应的子事务;并行处理成功单元,被配置成当重复执行的子事务在满足预设条件的情况下被成功执行时,生成待处理事务并行处理成功的信号。
[0012]在一些实施例中,该用于处理事务的装置还包括:并行处理失败单元,被配置成当重复执行的子事务在满足预设条件的情况下仍未被成功执行时,生成待处理事务并行处理失败的信号。
[0013]在一些实施例中,该用于处理事务的装置还包括:替代事务更换单元,被配置成当存在与待处理事务对应的替代事务时,利用各目标子线程并行处理替代事务拆分出的各替代子事务;替代事务并行处理失败单元,被配置成当任意替代子事务执行失败时,生成待处理事务的替代事务并行处理失败的信号;替代事务并行处理成功单元,被配置成当所有替代子事务均执行成功时,生成待处理事务的替代事务并行处理成功的信号。
[0014]在一些实施例中,该用于处理事务的装置还包括:执行成功率统计单元,被配置成统计预设时间段内待处理事务和对应的替代事务的执行成功率;执行优先级调整单元,被配置成根据执行成功率调整待处理事务和对应的替代事务的执行优先级。
[0015]在一些实施例中,预设条件包括不超过预设最大重复执行次数、不超过预设最大重复执行耗时、不超过预设最大连续执行失败次数中的至少一项。
[0016]在一些实施例中,事务拆分及并行处理单元进一步被配置成:确定子事务的第一数量;从存储有可重复利用子线程的预设线程池中选取出第一数量的目标子线程;将第一数量的子事务通过预设线程池一一提交至第一数量的目标子线程;当各目标子线程均成功接收到对应的子事务时,控制各目标子线程并行处理对应的子事务。
[0017]第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现如第一方面中任一实现方式描述的用于处理事务的方法。
[0018]第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行时能够实现如第一方面中任一实现方式描述的用于处理事务的方法。
[0019]本申请实施例提供的用于处理事务的方法、装置、电子设备及计算机可读存储介质,首先,将待处理事务拆分为多个子事务,并选用与子事务数量一致的多个目标子线程来并行处理各子事务;然后,控制子事务执行成功的目标子线程处于等待状态、控制子事务执行失败的目标子线程重复执行对应的子事务;最后,当重复执行的子事务在满足预设条件的情况下被成功执行时,生成待处理事务并行处理成功的信号。本申请通过上述技术方案提供了一种针对事务的多线程并行处理方式,在主线程的协调下,可将待处理事务拆分为多个子事务,并对应提交至多个子线程来并行执行,而通过仅使执行失败的子线程进行重试,可减少对运算资源的消耗,提升性能。
[0020]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特
征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0021]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0022]图1是本申请可以应用于其中的示例性系统架构;
[0023]图2是根据本申请的用于处理事务的方法的一个实施例的流程图;
[0024]图3是图2实施例中一种选用与子事务数量一致的多个目标子线程来并行处理各子事务的方法的流程图;
[0025]图4是根据本申请的用于处理事务的方法的另一个实施例的流程图;
[0026]图5是根据本申请的用于处理事务的方法的一个应用场景的流程图;
[0027]图6是根据本申请的用于处理事务的装置的一个实施例的结构示意图;
[0028]图7是适用于实现本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于处理事务的方法,包括:将待处理事务拆分为多个子事务,并选用与所述子事务数量一致的多个目标子线程来并行处理各所述子事务;控制子事务执行成功的目标子线程处于等待状态、控制子事务执行失败的目标子线程重复执行对应的子事务;当重复执行的子事务在满足预设条件的情况下被成功执行时,生成所述待处理事务并行处理成功的信号。2.根据权利要求1所述的方法,还包括:当重复执行的子事务在满足所述预设条件的情况下仍未被成功执行时,生成所述待处理事务并行处理失败的信号。3.根据权利要求1所述的方法,还包括:当存在与所述待处理事务对应的替代事务时,利用各所述目标子线程并行处理所述替代事务拆分出的各替代子事务;当任意所述替代子事务执行失败时,生成所述待处理事务的替代事务并行处理失败的信号;当所有所述替代子事务均执行成功时,生成所述待处理事务的替代事务并行处理成功的信号。4.根据权利要求3所述的方法,还包括:统计预设时间段内所述待处理事务和对应的替代事务的执行成功率;根据所述执行成功率调整所述待处理事务和对应的替代事务的执行优先级。5.根据权利要求1所述的方法,其中,所述预设条件包括不超过预设最大重复执行次数、不超过预设最大重复执行耗时、不超过预设最大连续执行失败次数中的至少一项。6.根据权利要求1至5任一项所述的方法,其中,所述选用与所述子事务数量一致的目标子线程来并行处理各所述子事务,包括:确定所述子事务的第一数量;从存储有可重复利用子线程的预设线程池中选取出所述第一数量的目标子线程;将所述第一数量的子事务通过所述预设线程池一一提交至所述第一数量的目标子线程;当各所述目标子线程均成功接收到对应的子事务时,控制各所述目标子线程并行处理对应的子事务。7.一种用于处理事务的装置,包括:事务拆分及并行处理单元,被配置成将待处理事务拆分为多个子事务,并选用与所述子事务数量一致的多个目标子线程来并行处理各所述子事务;等待及重复执行单元,被配置成控制子事务执行成功的目标子线程处于等待状态、控制子事务执行失败的目标子线程重复执行对应的子事务;并行处理成功单元,被配置成当重复执行的子事...

【专利技术属性】
技术研发人员:王晨鹏
申请(专利权)人:北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1