CN110457116A - 处理事务请求的方法及装置 - Google Patents

处理事务请求的方法及装置 Download PDF

Info

Publication number
CN110457116A
CN110457116A CN201910661264.4A CN201910661264A CN110457116A CN 110457116 A CN110457116 A CN 110457116A CN 201910661264 A CN201910661264 A CN 201910661264A CN 110457116 A CN110457116 A CN 110457116A
Authority
CN
China
Prior art keywords
transactions requests
processing
thread
transactions
request message
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.)
Granted
Application number
CN201910661264.4A
Other languages
English (en)
Other versions
CN110457116B (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910661264.4A priority Critical patent/CN110457116B/zh
Publication of CN110457116A publication Critical patent/CN110457116A/zh
Application granted granted Critical
Publication of CN110457116B publication Critical patent/CN110457116B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Abstract

本公开提供处理事务请求的方法及装置。该方法包括:接收批量事务请求,所述批量事务请求包括针对至少两个实体的至少两个事务请求;将所述至少两个事务请求分配给至少两个事务请求处理线程;以及由所述至少两个事务请求处理线程中的各个事务请求处理线程针对被分配的至少一个事务请求,执行如下事务请求处理:向该事务请求的对应实体发送处理请求消息,以由所述对应实体基于所述处理请求消息处理所述事务请求;以及从所述对应实体接收针对该事务请求的响应。

Description

处理事务请求的方法及装置
技术领域
本公开涉及计算机技术领域,具体地,涉及处理事务请求的方法及装置。
背景技术
随着计算机技术的发展,越来越多的事务可以利用计算机技术来处理,从而方便用户的生活和工作。目前,事务请求处理系统通常是串行处理模式,即针对多个事务请求时,在返回针对前一事务请求的处理结果后处理下一事务请求。当同一用户发出多个事务请求时,处理速度和成功率较低,不能为用户带来充分的便利。例如,事务请求的一个示例是基金开户请求。当同一用户针对多个基金公司发起基金开户请求时,串行处理模行,如果串行处理各个基金开户请求,将会耗费大量时间,因而为降低用户体验。
发明内容
鉴于上述,本公开提供了一种处理事务请求的方法及装置。利用该方法及装置,将多个事务请求分别分配给至少两个事务请求处理线程,从而并行处理多个事务请求,并且各个事务请求处理线程之间互不干扰,不仅能够提高事务请求的处理速度,还能提高处理成功率。
根据本公开的一个方面,提供了一种处理事务请求的方法,包括:接收批量事务请求,所述批量事务请求包括针对至少两个实体的至少两个事务请求;将所述至少两个事务请求分配给至少两个事务请求处理线程;以及由所述至少两个事务请求处理线程中的各个事务请求处理线程针对被分配的至少一个事务请求,执行如下事务请求处理:向该事务请求的对应实体发送处理请求消息,以由所述对应实体基于所述处理请求消息处理所述事务请求;以及从所述对应实体接收针对该事务请求的响应。
可选的,在一个示例中,所述事务请求处理线程的数量可以与所述事务请求的数量相等,每个事务请求处理线程被分配一个所述事务请求。
可选的,在一个示例中,将所述至少两个事务请求分配给至少两个事务请求处理线程可以包括:针对每个所述事务请求建立一个事务请求处理线程,并为所建立的事务请求处理线程分别分配一个事务请求。
可选的,在一个示例中,在由各个事务请求处理线程针对被分配的至少一个事务请求执行所述事务请求处理之前,所述方法还可以包括:将线程计数器设置为第一预定值,所述方法还可以包括:每当有一个所述事务请求处理线程返回针对被分配的事务请求的事务请求处理结果时,使所述线程计数器增加或减少第二预定值;以及当所述线程计数器被置为第三预定值时,向发出所述批量数据处理请求的用户终端发送各个事务请求处理线程的事务请求处理结果。
可选的,在一个示例中,所述处理请求消息可以基于该事务请求的对应实体的消息生成规则而生成。
可选的,在一个示例中,所述方法还可以包括:由所述各个事务请求处理线程针对被分配的至少一个事务请求,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理。
可选的,在一个示例中,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理可以包括:当针对该处理请求消息的事务请求处理的重新执行次数未超过预定次数时,重新执行所述事务请求处理。
可选的,在一个示例中,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理可以包括:在未接收到针对该处理请求消息的响应时,获取失败原因;以及当所述失败原因为以下中的任一者时,重新执行所述事务请求处理:未成功生成针对该事务请求的处理请求处理消息;所述处理请求消息未被成功发送给所述对应实体;在将所述处理请求消息发送给所述对应实体后,经过预定时间之后未收到针对所述处理请求消息的响应。
根据本公开的另一方面,还提供一种处理事务请求的装置,包括:事务请求接收单元,被配置为接收批量事务请求,所述批量事务请求包括针对至少两个实体的至少两个事务请求;事务请求分配单元,被配置为将所述至少两个事务请求分配给至少两个事务请求处理线程;以及事务请求处理单元,被配置为由所述至少两个事务请求处理线程中的各个事务请求处理线程针对被分配的至少一个事务请求,执行如下事务请求处理:向该事务请求的对应实体发送处理请求消息,以由所述对应实体基于所述处理请求消息处理该事务请求;以及从所述对应实体接收针对该事务请求的响应。
可选的,在一个示例中,所述事务请求处理线程的数量可以与所述事务请求的数量相等,每个事务请求处理线程被分配一个所述事务请求。
可选的,在一个示例中,所述事务请求分配单元可以包括:事务请求处理线程建立模块,被配置为针对每个所述事务请求建立一个事务请求处理线程,并为所建立的事务请求处理线程分配一个事务请求。
可选的,在一个示例中,所述装置还可以包括:线程计数单元,被配置为:在由各个事务请求处理线程针对被分配的至少一个事务请求执行所述事务请求处理之前,将线程计数器设置为第一预定值;以及每当有一个所述事务请求处理线程返回针对被分配的事务请求的事务请求处理结果时,使所述线程计数器增加或减少第二预定值;以及事务请求处理结果发送单元,被配置为当所述线程计数器被置为第三预定值时,向发出所述批量数据处理请求的用户终端发送各处事务请求处理线程的事务请求处理结果。
可选的,在一个示例中,所述处理请求消息可以基于该事务请求的对应实体的消息生成规则而生成。
可选的,在一个示例中,所述装置还可以包括:处理补偿单元,被配置为由所述各个事务请求处理线程针对被分配的至少一个事务请求,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理。
可选的,在一个示例中,所述处理补偿单元可以被配置为:当针对该处理请求消息的事务请求处理的重新执行次数未超过预定次数时,重新执行所述事务请求处理。
可选的,在一个示例中,所述处理补偿单元可以包括:失败原因获取单元,被配置为在未接收到针对该处理请求消息的响应时,获取失败原因;以及处理补偿模块,被配置为当所述失败原因为以下中的任一者时,重新执行所述事务请求处理:未成功生成针对该事务请求的事务请求处理消息;所述处理请求消息未被成功发送给所述对应实体;在将所述处理请求消息发送给所述对应实体后,经过预定时间之后未收到针对所述处理请求消息的响应。
根据本公开的另一方面,还提供一种计算设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的方法。
根据本公开的另一方面,还提供一种非暂时性机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的方法。
利用本公开的方法和装置,通过批量事务请求中的多个事务请求分别分配给至少两个事务请求处理线程,由至少两个事务请求处理线程分别针对被分配的事务请求向对应实体发送处理请求消息,并从对应实体获得针对处理请求消息的响应,从而不仅能够提高事务请求的处理速度,还能提高处理成功率。
利用本公开的方法和装置,通过使事务请求处理线程的数量与事务请求的数量相等,每个事务请求处理线程被分配一个事务请求,能够最大程度地降低各线程之间的干扰,并提高处理速度。
利用本公开的方法和装置,利用线程计数器来监听各个事务请求处理线程是否全部返回事务请求处理结果,并在全部返回事务请求处理结果时向用户终端发送针对批量事务请求的事务请求处理结果,能够以易于实现的方式及时准确地向用户终端提供事务请求处理结果。
利用本公开的方法和装置,通过由各个事务请求处理线程针对被分配的至少一个事务请求,在未接收到针对该处理请求消息的响应时,重新执行事务请求处理,能够在未成功接收到对应实体的响应时,进行补偿处理,以提高处理成功率。
附图说明
通过参照下面的附图,可以实现对于本公开内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开的实施例,但并不构成对本公开的实施例的限制。在附图中:
图1是根据本公开的一个实施例的事务请求处理方法的流程图;
图2是根据本公开的另一实施例的事务请求处理方法的流程图;
图3是根据本公开的一个实施例的事务请求处理方法中的线程建立过程的示例性流程图;
图4是根据本公开的一个实施例的事务请求处理方法中的事务请求处理过程的示例性流程图;
图5是根据本公开的一个实施例的事务请求处理装置的结构框图;
图6是图5所示的事务请求处理装置中的事务请求分配单元的一个示例的结构框图;
图7是根据本公开的另一实施例的事务请求处理装置的结构框图;
图8是图7所示的事务请求处理装置中的处理补偿单元的一个示例的结构框图;
图9是根据本公开的一个实施例的用于实现事务请求处理方法的计算设备的结构框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
现在结合附图来描述本公开的事务请求处理方法及装置。
图1是根据本公开的一个实施例的事务请求处理方法的流程图。
如图1所示,在块120,接收批量事务请求,批量事务请求包括针对至少两个实体的至少两个事务请求。在一个示例中,用户可以在用户终端设备上输入事务处理所需的基本信息之后,从实体列表中选择多个实体。然后,用户终端设备可以根据用户所选择的实体和用户输入的基本信息组装生成并发出批量事务请求。在批量事务请求中,包括针对用户所选择的多个实体的事务请求。
作为示例,事务请求可以是基金开户请求,实体可以是基金公司服务器。用户可以访问用户终端设备上的基金开户申请页面,并填入基金开户所需的基本信息,并从待选的基金公司列表中选择用户想要申请开户的多个基金公司。用户输入的基本信息例如可以是用户身份标识(当用户为自然人时)、用户机构ID(当用户为机构时)、用户名称、联系人、证件类型、证件号码(如身份证号、法人证件号)、经办人姓名、经办人证件号、经办人证件类型等。
在用户选择多个基金账户之后,系统可以自动载入各个基金公司的基本信息,例如机构名、机构标识等。然后,用户可以提交基金开户申请,当用户提交基金开户申请时,终端设备可以根据用户输入的基本信息和用户所选择的多个基金公司信息,组装生成并发出针对用户所选择的多个基金公司的批量基金开户请求。在一个示例中,可以在用户注册基金开户系统时记录用户的基本信息,然后当用户访问基金开户申请页面时,自动载入该用户的基本信息。
可以基于各个实体在处理事务请求时所需的信息提示用户需要在批量事务请求中填写的各种信息。
在接收到批量事务请求之后,在块140,将至少两个事务请求分配给至少两个事务请求处理线程。至少两个事务请求处理线程可以是预先建立的,例如可以是处理前一批量请求时使用过但未注销的事务请求处理线程。还可以在接收到批量事务请求时,针对批量事务请求中的多个事务请求建立事务处理线程。
在一个示例中,事务请求处理线程的数量可以小于事务请求的数量。在该示例中,事务请求处理线程可能被分配一个或多个事务请求。为了减少同一事务请求处理线程在处理多个事务请求时的延时,事务请求处理线程的数量可以与事务请求的数量相等。此时,可以为每个事务请求处理线程分配一个事务请求,从而对各个事务请求的处理之间不会产生延时或干扰,因而能够进一步提高对事务请求的处理效率和成功率。
在将事务请求分配给至少两个事务请求处理线程中个事务处理线程之后,在块160-块180,由各个事务请求处理线程针对被分配的至少一个事务请求,执行事务请求处理。
在块160,各个事务请求处理线程针对被分配的至少一个事务请求,向该事务请求的对应实体发送处理请求消息,以由对应实体基于处理请求消息处理事务请求。对应实体例如可以是各个基金开户请求所针对的基金公司。在将各个事务请求分配给各个事务请求处理线程之后,各个事务请求处理线程可以基于分配的事务请求,确定该事务请求的对应实体。然后,可以将对应实体发送处理请求消息,以请求对应实体处理该事务请求。对应实体在接收到处理请求消息之后,可以基于处理请求消息来处理该事务请求。事务请求消息中包括对应实体进行事务处理所需的信息,例如用户基本信息。
在基金开户场景中,如果用户是机构,则处理请求消息中可以包括用户的机构ID、机构全称、证件类型、证件号、法人代表姓名、法人代表证件类型、法人代表证件号、经办人姓名等。
在一个示例中,处理请求消息可以基于该事务请求的对应实体的消息生成规则而生成。在系统中可以存储有各个实体的消息生成规则,各个线程可以针对被分配的事务请求,调用对应实体的消息生成规则,然后基于该对应实体的消息生成规则来生成处理请求消息。例如,事务请求处理线程可以基于对应基金公司的消息生成规则组装基金开户请求消息,然后将组装生成的基金开户请求消息发送给对应基金公司的服务器。
用户例如可以是银行,在货币基金T0垫资主体是银行时,银行作为垫资主体需要在基金公司开户,以实现T0兑付。银行通常需要在多个基金公司开户,因而可以在基于银行的基本信息和各个基金公司的要求,组装生成针对各个基金公司的开户请求消息。基金公司的消息生成规则例如可以是开户申请表格。事务请求处理系统可以基于银行输入的基本信息,填充开户申请表格,并将该表格发送给对应基金公司服务器。
对应实体在基于所接收到的事务请求处理消息处理相应事务请求之后,会反馈对应于该事务请求处理消息的响应。
各个事务处理线程在向对应实体发送处理请求消息之后,在块180,从对应实体接收针对该事务请求的响应。针对该事务请求的响应即相应实体对该事务请求的处理结果。例如,当事务请求为基金开户请求时,针对基金开户请求的响应可以包括基金账户号,还可以包括密码。
图2是根据本公开的另一实施例的事务请求处理方法的流程图。
如图2所示,在块202,接收批量事务请求。然后在块204,针对所接收的批量事务请求中的每个事务请求,建立一个事务请求处理线程。接下来在块206,将各个事务请求分配给所生成的各个事务请求处理线程。可以在针对各个事务请求建立多个事务请求处理线程之后,为每个事务处理线程分配一个事务请求。还可以每建立一个事务请求处理线程时为该事务请求处理线程分配事务请求。
在各个事务请求被分配给各个事务请求处理线程之后,在块208,将线程计数器设置为第一预定值。在一个示例中,第一预定值可以是事务请求处理线程的数量。可以在建立各个事务请求处理线程之后或将分配各个事务请求之后,将线程计数器设置为事务请求处理线程的数量。
在一个示例中,第一预定值可以是在事务请求处理线程的建立过程中设置的。例如,可以在图3所示的线程建立过程中设置线程计数器。图3是根据本公开的一个实施例的事务请求处理方法中的线程建立过程的示例性流程图。
如图3所示,在块302中,针对批量事务请求,建立一个事务请求处理线程。在完成建立一个事务请求处理线程之后,在块304,使线程计数器加一。然后在块306,判断所建立的事务请求处理线程数量是否达到事务请求的数量。如果未达到事务请求的数量,则循环执行块302至306。如果事务请求处理线程的数量与事务请求的数量相等,则结束线程建立过程。在完成线程建立过程时线程计数器的值即为第一预定值。
在将线程计数器值设置为第一预定值之后,在块210,由各个事务请求处理线程针对被分配的事务请求,执行事务请求处理。即,由各个事务请求处理线程针对被分配的事务请求,向该事务请求的对应实体发送处理请求消息,以由对应实体基于所述处理请求消息处理所述事务请求,并从对应实体接收针对该事务请求的响应。
在各个事务请求处理线程执行事务请求处理时,可以对各个事务处理线程进行监听,以监听其是否完成事务请求处理。此时,可以在块212,判断是否存在返回事务请求处理结果的事务请求处理线程。事务请求处理结果可以是从对应实体接收到的响应。当事务请求处理失败时,事务请求处理结果也可以是指示事务请求处理失败的事务请求处理结果。
每当监听到一个事务请求处理线程返回事务请求处理结果时,在块214,使线程计数器增加或减少第二预定值。然后可以在块216,判断线程计数器是否达到第三预定值。如果线程计数器未达到第三预定值,则继续循环执行块212至块216。例如,如果以图3所示的示例设置线程计数器,则可以在每当有一个线程返回事务请求处理结果时,使线程计数器减一。如果线程计数器的初始值为0,则第一预定值为线程计数器的数量,当线程计数器重新归0时,即表明线程计数器达到了第三预定值。还可以以任意其它计数方式来监听各个事务请求处理线程。例如,假设事务请求处理线数的数量为N,线程计数器初始值为M,则可以在每当有一个事务请求处理线程返回事务请求处理结果时,使线程计数器增加X,那么第三预定值为N+X*N。
如果线程计数器达到了第三预定值,则表明所有事务请求处理线程已完成事务处理。此时,可以汇总各个事务请求处理线程返回的事务请求处理结果,在块218,向发出批量事务请求的用户终端发送各个事务处理线程的事务请求处理结果。
图4是根据本公开的一个实施例的事务请求处理方法中的事务请求处理过程的示例性流程图。
如图4所示,在块402,由各个事务请求处理线程针对被分配的事务请求,基于该事务请求的对应实体的消息生成规则,生成处理请求消息。
然后在块404,将处理请求消息发送给对应实体。
在将处理请求消息发送给对应实体后,在块406,判断是否从对应实体接收到了对应于所发送的处理请求消息的响应。如果接收到了响应,则在块408,该事务请求处理线程结束事务请求处理,并返回表明事务请求处理成功的事务请求处理结果。例如,如果成功从基金公司服务器接收到了基金开户结果(账户号、密码),则表明基金开户成功。此时返回的事务请求处理结果可以包括账户号,还可以包括初始密码。
如果没有接收到响应,则表明事务请求处理失败。此时,可以块410,获取失败原因。失败原因可以是在参与事务请求处理的各个子系统反馈的原因。例如,当处理请求消息未成功发送给对应实体时,可反馈处理请求消息发送失败消息。再例如,如果处理请求消息成功发送给了对应实体,但是由于对应实体的系统故障或处理请求消息中的缺失必要信息等原因而在对应实体处处理失败,则对应实体也可以向事务请求处理系统发送事务请求处理失败消息,在该事务请求处理失败消息中还可以包括具体失败原因。
在获取到失败原因之后,可以在块412,判断失败原因是否属于可重新执行原因。当事务请求处理失败是由事务请求处理系统的原因或处理时间超时引起时,可以通过重新执行来进行补偿,以提高事务请求的成功率。如果事务请求处理原因是对应实体的系统故障或用户输入的基本信息有误等原因引起时,即使重新执行也难以成功获取到针对事务请求的响应。因而,可重新执行原因可以包括由事务请求处理系统或者因处理时间超时引起的失败原因。
可重新执行原因可以包括未成功生成针对该事务请求的处理请求处理消息,例如因系统故障而未成功生成基金开户请求消息。可重新执行原因还可以包括处理请求消息未被成功发送给对应实体,例如在生成基金开户请求消息后,因消息发送单元或信道阻塞而未能成功发送给对应基金公司。可重新执行原因还可以包括在将处理请求消息发送给对应实体后,经过预定时间之后未收到针对处理请求消息的响应。
当失败原因属于可重新执行原因时,可以重新执行事务请求处理,即,可以重新生成处理请求消息并将处理请求消息发送给对应实体,然后从对应实体接收对应于该处理请求消息的响应。当失败原因不是因处理请求消息生成失败引起时,也可以不重新生成处理请求消息。
为了避免系统无限制地重新执行,可以设置重新执行次数上限。此时,可以在块414,判断重新执行事务请求处理的次数是否达到了预定次数。当重新执行次数未达到预定次数时,可以重新执行块402至块414的处理请求处理过程。
如果重新执行次数已达到预定次数或未获取到响应的原因属于不可重新执行的原因,则在块416,结束事务请求处理,并返回表明事务请求处失败的事务请求处理结果。
当所有事务处理请求处理线程均返回事务请求处理结果时,可以汇总所有事务请求处理结果以作为针对批量事务请求的批量事务请求处理结果,并发送给用户终端设备。在基金开户场景下,批量事务请求处理结果可以包括账户号、账户密码、处理成功或失败标识、对应基金公司代码等信息。在一个示例中,可以在存在至少一个事务请求处理线程成功地从对应实体获取到响应时,向用户终端设备发送所有的事务请求处理结果。还可以只发送处理成功的事务请求处理结果。
图5是根据本公开的一个实施例的事务请求处理装置的结构框图。如图5所示,事务请求处理装置500包括事务请求接收单元510、事务请求分配单元520和事务请求处理单元530。
事务请求接收单元510被配置为接收批量事务请求,批量事务请求包括针对至少两个实体的至少两个事务请求。事务请求分配单元520被配置为将接收到的至少两个事务请求分配给至少两个事务请求处理线程。在一个示例中,事务请求处理线程的数量与事务请求的数量相等,每个事务请求处理线程被分配一个所述事务请求。事务请求分配单元520可以包括事务请求处理线程建立模块,被配置为针对每个事务请求建立一个事务请求处理线程,并为所建立的事务请求处理线程分配一个事务请求。
在分配事务请求之后,事务请求处理单元530被配置为由至少两个事务请求处理线程中的各个事务请求处理线程针对被分配的至少一个事务请求,执行如下事务请求处理:向该事务请求的对应实体发送处理请求消息,以由对应实体基于所述处理请求消息处理该事务请求;以及从对应实体接收针对该事务请求的响应。处理请求消息基于该事务请求的对应实体的消息生成规则而生成。
图6是图5所示的事务请求处理装置中的事务请求分配单元的一个示例的结构框图。如图6所示,事务请求分配单元520包括线程建立模块521和事务请求分配模块522。
线程建立模块521被配置为针对每个所述事务请求建立一个事务请求处理线程。事务请求分配模块522被配置为为所建立的事务请求处理线程分配一个事务请求。可以在线程建立模块521建立完成所有事务请求处理线程的建立过程之后,由事务请求分配模块522为每个事务请求处理线程分配事务请求。还可以每当线程建立模块521建立一个事务请求处理线程时,由事务请求分配模块522为该事务请求处理线程分配事务请求。
图7是根据本公开的另一实施例的事务请求处理装置的结构框图。如图7所示,事务请求处理装置700包括事务请求接收单元710、事务请求分配单元720、事务请求处理单元730、线程计数单元740、处理结果发送单元、750和处理补偿单元760。
事务请求接收单元710接收到包括多个事务请求的批量事务请求时由事务请求分配单元720将所接收到的多个事务请求分配给多个事务处理请求线程。然后事务请求处理单元730被配置为由各个事务请求处理线程针对被分配的事务请求执行事务请求处理。
线程计数单元740被配置为在由各个事务请求处理线程针对被分配的至少一个事务请求执行所述事务请求处理之前,将线程计数器设置为第一预定值。每当有一个述事务请求处理线程返回针对被分配的事务请求的事务请求处理结果时,线程计数单元740使所述线程计数器增加或减少第二预定值。被配置为当所述线程计数器被置为第三预定值时,结果发送单元750向发出批量数据处理请求的用户终端发送各个事务请求处理线程的事务请求处理结果。
处理补偿单元760被配置为由各个事务请求处理线程针对被分配的至少一个事务请求,在未接收到针对该处理请求消息的响应时,重新执行事务请求处理。在一个示例中,所述处理补偿单元760可以被配置为当针对该处理请求消息的事务请求处理的重新执行次数未超过预定次数时,重新执行事务请求处理。
需要说明的是,图7中的各个单元并不都是必要组成要素,在某些示例中,可以不包括图7中示出的某个或某些单元。
图8是图7所示的事务请求处理装置中的处理补偿单元的一个示例的结构框图。如图8所示,处理补偿单元760包括失败原因获取单元761和处理补偿模块762
失败原因获取单元761被配置为在未接收到针对该处理请求消息的响应时,获取失败原因。处理补偿模块762被配置为当所述失败原因为以下中的任一者时,重新执行事务请求处理:未成功生成针对该事务请求的事务请求处理消息;处理请求消息未被成功发送给对应实体;在将处理请求消息发送给对应实体后,经过预定时间之后未收到针对处理请求消息的响应。
以上参照图1到图8,对根据本公开的处理事务请求的方法及装置的实施例进行了描述。在以上对方法实施例的描述中所提及的细节,同样适用于本公开的装置的实施例。
本公开的处理事务请求的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见。
本公开的处理事务请求的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本公开中,处理事务请求的装置例如可以利用计算设备实现。
图9是根据本公开的一个实施例的用于实现事务请求处理方法的计算设备的结构框图。如图9所示,计算设备900包括处理器910、存储器920、内存930、通信接口940和内部总线950,并且处理器910、存储器(例如,非易失性存储器)920、内存930、通信接口940经由总线950连接在一起。根据一个实施例,计算设备900可以包括至少一个处理器910,该至少一个处理器910执行在计算机可读存储介质(即,存储器920)中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器920中存储计算机可执行指令,其当执行时使得至少一个处理器910:接收批量事务请求,所述批量事务请求包括针对至少两个实体的至少两个事务请求;将所述至少两个事务请求分配给至少两个事务请求处理线程;以及由所述至少两个事务请求处理线程中的各个事务请求处理线程针对被分配的至少一个事务请求,执行如下事务请求处理:向该事务请求的对应实体发送处理请求消息,以由所述对应实体基于所述处理请求消息处理所述事务请求;以及从所述对应实体接收针对该事务请求的响应。
应该理解,在存储器920中存储的计算机可执行指令当执行时使得至少一个处理器910进行本公开的各个实施例中以上结合图1-8描述的各种操作和功能。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本公开的各个实施例中以上结合图1-8描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本公开的实施例的可选实施方式,但是,本公开的实施例并不限于上述实施方式中的具体细节,在本公开的实施例的技术构思范围内,可以对本公开的实施例的技术方案进行多种简单变型,这些简单变型均属于本公开的实施例的保护范围。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

Claims (18)

1.一种处理事务请求的方法,包括:
接收批量事务请求,所述批量事务请求包括针对至少两个实体的至少两个事务请求;
将所述至少两个事务请求分配给至少两个事务请求处理线程;以及
由所述至少两个事务请求处理线程中的各个事务请求处理线程针对被分配的至少一个事务请求,执行如下事务请求处理:
向该事务请求的对应实体发送处理请求消息,以由所述对应实体基于所述处理请求消息处理所述事务请求;以及
从所述对应实体接收针对该事务请求的响应。
2.如权利要求1所述的方法,其中,所述事务请求处理线程的数量与所述事务请求的数量相等,每个事务请求处理线程被分配一个所述事务请求。
3.如权利要求2所述的方法,其中,将所述至少两个事务请求分配给至少两个事务请求处理线程包括:
针对每个所述事务请求建立一个事务请求处理线程,并为该事务请求处理线程分别分配一个事务请求。
4.如权利要求1-3中任一所述的方法,其中,在由各个事务请求处理线程针对被分配的至少一个事务请求执行所述事务请求处理之前,所述方法还包括:
将线程计数器设置为第一预定值,
所述方法还包括:
每当有一个所述事务请求处理线程返回针对被分配的事务请求的事务请求处理结果时,使所述线程计数器增加或减少第二预定值;以及
当所述线程计数器被置为第三预定值时,向发出所述批量数据处理请求的用户终端发送各个事务请求处理线程的事务请求处理结果。
5.如权利要求1-3中任一所述的方法,其中,所述处理请求消息基于该事务请求的对应实体的消息生成规则而生成。
6.如权利要求1-3中任一所述的方法,还包括:
由所述各个事务请求处理线程针对被分配的至少一个事务请求,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理。
7.如权利要求6所述的方法,其中,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理包括:
当针对该处理请求消息的事务请求处理的重新执行次数未超过预定次数时,重新执行所述事务请求处理。
8.如权利要求6所述的方法,其中,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理包括:
在未接收到针对该处理请求消息的响应时,获取失败原因;以及
当所述失败原因为以下中的任一者时,重新执行所述事务请求处理:
未成功生成针对该事务请求的处理请求处理消息;
所述处理请求消息未被成功发送给所述对应实体;
在将所述处理请求消息发送给所述对应实体后,经过预定时间之后未收到针对所述处理请求消息的响应。
9.一种处理事务请求的装置,包括:
事务请求接收单元,被配置为接收批量事务请求,所述批量事务请求包括针对至少两个实体的至少两个事务请求;
事务请求分配单元,被配置为将所述至少两个事务请求分配给至少两个事务请求处理线程;以及
事务请求处理单元,被配置为由所述至少两个事务请求处理线程中的各个事务请求处理线程针对被分配的至少一个事务请求,执行如下事务请求处理:
向该事务请求的对应实体发送处理请求消息,以由所述对应实体基于所述处理请求消息处理该事务请求;以及
从所述对应实体接收针对该事务请求的响应。
10.如权利要求9所述的装置,其中,所述事务请求处理线程的数量与所述事务请求的数量相等,每个事务请求处理线程被分配一个所述事务请求。
11.如权利要求10所述的装置,其中,所述事务请求分配单元包括:
线程建立模块,被配置为针对每个所述事务请求建立一个事务请求处理线程;
事务请求分配模块,被配置为为该事务请求处理线程分配一个事务请求。
12.如权利要求11所述的装置,还包括:
线程计数单元,被配置为:
在由各个事务请求处理线程针对被分配的至少一个事务请求执行所述事务请求处理之前,将线程计数器设置为第一预定值;以及
每当有一个所述事务请求处理线程返回针对被分配的事务请求的事务请求处理结果时,使所述线程计数器增加或减少第二预定值;以及
处理结果发送单元,被配置为当所述线程计数器被置为第三预定值时,向发出所述批量数据处理请求的用户终端发送所述事务请求处理结果。
13.如权利要求9所述的装置,其中,所述处理请求消息基于该事务请求的对应实体的消息生成规则而生成。
14.如权利要求9-13中任一所述的装置,还包括:
处理补偿单元,被配置为由所述各个事务请求处理线程针对被分配的至少一个事务请求,在未接收到针对该处理请求消息的响应时,重新执行所述事务请求处理。
15.如权利要求14所述的装置,其中,所述处理补偿单元被配置为:
当针对该处理请求消息的事务请求处理的重新执行次数未超过预定次数时,重新执行所述事务请求处理。
16.如权利要求15所述的装置,其中,所述处理补偿单元包括:
失败原因获取模块,被配置为在未接收到针对该处理请求消息的响应时,获取失败原因;以及
处理补偿模块,被配置为当所述失败原因为以下中的任一者时,重新执行所述事务请求处理:
未成功生成针对该事务请求的事务请求处理消息;
所述处理请求消息未被成功发送给所述对应实体;
在将所述处理请求消息发送给所述对应实体后,经过预定时间之后未收到针对所述处理请求消息的响应。
17.一种计算设备,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1到8中任一所述的方法。
18.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到8中任一所述的方法。
CN201910661264.4A 2019-07-22 2019-07-22 处理事务请求的方法及装置 Active CN110457116B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910661264.4A CN110457116B (zh) 2019-07-22 2019-07-22 处理事务请求的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910661264.4A CN110457116B (zh) 2019-07-22 2019-07-22 处理事务请求的方法及装置

Publications (2)

Publication Number Publication Date
CN110457116A true CN110457116A (zh) 2019-11-15
CN110457116B CN110457116B (zh) 2023-10-27

Family

ID=68481619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910661264.4A Active CN110457116B (zh) 2019-07-22 2019-07-22 处理事务请求的方法及装置

Country Status (1)

Country Link
CN (1) CN110457116B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114465974A (zh) * 2022-01-20 2022-05-10 中国工商银行股份有限公司 推送消息的处理方法、装置、处理器及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216779A (zh) * 2007-01-05 2008-07-09 中兴通讯股份有限公司 实现多实例线程序列化事务处理的方法
US20100333095A1 (en) * 2009-06-26 2010-12-30 Shavit Nir N Bulk Synchronization in Transactional Memory Systems
US20110041006A1 (en) * 2009-08-12 2011-02-17 New Technology/Enterprise Limited Distributed transaction processing
CN103677968A (zh) * 2012-09-07 2014-03-26 腾讯科技(深圳)有限公司 事务处理方法、事务协调器装置、事务参与者装置及系统
US20170367023A1 (en) * 2016-06-16 2017-12-21 Yandex Europe Ag Method of and system for processing a transaction request in distributed data processing systems
CN108920258A (zh) * 2018-06-26 2018-11-30 北京中电普华信息技术有限公司 一种事务处理方法及应用服务中间件
CN109901913A (zh) * 2017-12-11 2019-06-18 复旦大学 一种可控重复执行次数的多线程事务存储编程模型方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216779A (zh) * 2007-01-05 2008-07-09 中兴通讯股份有限公司 实现多实例线程序列化事务处理的方法
US20100333095A1 (en) * 2009-06-26 2010-12-30 Shavit Nir N Bulk Synchronization in Transactional Memory Systems
US20110041006A1 (en) * 2009-08-12 2011-02-17 New Technology/Enterprise Limited Distributed transaction processing
CN103677968A (zh) * 2012-09-07 2014-03-26 腾讯科技(深圳)有限公司 事务处理方法、事务协调器装置、事务参与者装置及系统
US20170367023A1 (en) * 2016-06-16 2017-12-21 Yandex Europe Ag Method of and system for processing a transaction request in distributed data processing systems
CN109901913A (zh) * 2017-12-11 2019-06-18 复旦大学 一种可控重复执行次数的多线程事务存储编程模型方法
CN108920258A (zh) * 2018-06-26 2018-11-30 北京中电普华信息技术有限公司 一种事务处理方法及应用服务中间件

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114465974A (zh) * 2022-01-20 2022-05-10 中国工商银行股份有限公司 推送消息的处理方法、装置、处理器及电子设备
CN114465974B (zh) * 2022-01-20 2024-01-26 中国工商银行股份有限公司 推送消息的处理方法、装置、处理器及电子设备

Also Published As

Publication number Publication date
CN110457116B (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
CN108959621B (zh) 一种区块链网络的实现方法、装置、设备及存储介质
US11797661B2 (en) Dynamically generating activity prompts to build and refine machine learning authentication models
WO2020146667A1 (en) Systems and methods for secure data aggregation and computation
US7975138B2 (en) Systems and methods for mutually authenticated transaction coordination messages over insecure connections
CN110032571A (zh) 业务流程处理方法、装置、存储介质及计算设备
CN111213340A (zh) 选择用于密码功能的证明委托并使其安全
CN103455749B (zh) 协作系统、其协作方法以及信息处理系统
CN109493204A (zh) 基于区块链的业务记账方法及终端设备
CN108921690A (zh) 转账交易事中风控方法及装置
CN105378703A (zh) 用于使用统一规则集合来验证输入的多个方法的方法和系统
CN109787976A (zh) 信息更新方法、装置、计算机设备及存储介质
US20240037252A1 (en) Methods and apparatuses for jointly updating service model
CN108718337A (zh) 网站账号登录、验证、验证信息处理方法、装置及系统
CN107862198A (zh) 一种访问验证方法、系统及客户端
US11876907B1 (en) Authentication token management
CN107464121A (zh) 电子账户的挂失、解挂、业务管理方法、装置及设备
WO2022205966A1 (zh) 一种跨链访问控制方法和装置
CN106559389A (zh) 一种服务资源发布、调用方法、装置、系统及云服务平台
CN109450976A (zh) 一种业务系统的访问的方法及装置
CN109787975A (zh) 身份认证方法、装置、计算机设备及存储介质
CN108600234A (zh) 一种身份验证方法、装置和移动终端
CN110457116A (zh) 处理事务请求的方法及装置
CN110113346A (zh) 一种网络验证方法、用户终端及服务器
CN108170860A (zh) 数据查询方法、装置、电子设备及计算机可读存储介质
CN106910055A (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
TA01 Transfer of patent application right

Effective date of registration: 20200927

Address after: English genus

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: English genus

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200927

Address after: English genus

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant