CN115098528A - 业务处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
业务处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115098528A CN115098528A CN202210731117.1A CN202210731117A CN115098528A CN 115098528 A CN115098528 A CN 115098528A CN 202210731117 A CN202210731117 A CN 202210731117A CN 115098528 A CN115098528 A CN 115098528A
- Authority
- CN
- China
- Prior art keywords
- service
- index
- sub
- result
- verification
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种业务处理方法、装置、电子设备及计算机可读存储介质,涉及计算机技术领域。在该方法中,管理服务器为接收到的业务请求生成全局流水标识,确定对应的至少一个待调用的微服务,生成每个待调用的微服务对应的子流水标识,分别向每个待调用的微服务对应的业务服务器发送子业务请求。各业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引,从预设的校验表中查询第一索引,在确定校验表中包括第一索引时,将校验表中第一索引的业务处理结果确定为对应的业务处理结果。实现了管理服务器对每个业务服务器的协调管理,在已经获取到子业务的业务处理结果的情况下,不需要再次进行业务处理。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种业务处理方法、装置、电子设备及计算机可读存储介质。
背景技术
幂等性是指可以使用相同的参数重复执行,并能获得相同结果的函数,这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。对于同一业务,每次发起针对该业务的业务处理请求后,所得到的针对该业务处理请求的处理结果应该是相同的,即针对同一业务,其发起请求的操作和对该请求进行响应所得到的处理结果的操作之间是幂等的。
在分布式系统中,各内部模块之间调用存在超时或其他未知错误的情况,不能确定交易是否完成,需要重新发起交易。如果没有幂等保障会存在业务模块重复调用的情况,导致业务逻辑处理错误不能正常完成交易,最终导致交易出现损失,因此需要实现各业务模块间的幂等。
现有技术中,需要单独为各业务模块在业务层设置幂等校验机制,各业务模块的幂等校验机制无法通用,开发成本高。
发明内容
本申请实施例提供了一种业务处理方法、装置、电子设备及计算机可读存储介质,该方法可以减少对业务层的开发成本。具体包括:
根据本申请实施例的一个方面,提供了一种业务处理方法,该方法包括:
管理服务器为接收到的业务请求生成全局流水标识;
管理服务器确定业务请求对应的至少一个待调用的微服务,并生成每个待调用的微服务对应的子流水标识,其中,每个待调用的微服务对应一个业务服务器;
管理服务器分别向每个待调用的微服务对应的业务服务器发送子业务请求,其中,对于每个待调用的微服务,子业务请求中携带有全局流水标识和待调用的微服务对应的子流水标识;
各业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引;
各业务服务器从预设的校验表中查询第一索引;其中,校验表中包括至少一个索引以及各索引对应的业务处理结果;以及
在确定校验表中包括第一索引时,将校验表中第一索引的业务处理结果确定为子业务请求的业务处理结果。
根据本申请实施例的另一个方面,提供了一种业务处理装置,该装置包括:
全局流水标识生成模块,用于通过管理服务器为接收到的业务请求生成全局流水标识;
微服务确定模块,用于通过管理服务器确定业务请求对应的至少一个待调用的微服务,其中,每个待调用的微服务对应一个业务服务器;
子流水标识生成模块,用于通过管理服务器生成每个待调用的微服务对应的子流水标识;
子业务请求发送模块,用于通过管理服务器分别向每个待调用的微服务对应的业务服务器发送子业务请求,其中,对于每个待调用的微服务,子业务请求中携带有全局流水标识和待调用的微服务对应的子流水标识;
第一索引生成模块,用于通过各业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引;
业务处理结果确定模块,用于通过各业务服务器从预设的校验表中查询第一索引;其中,校验表中包括至少一个索引以及各索引对应的业务处理结果;以及
在确定校验表中包括第一索引时,将校验表中第一索引的业务处理结果确定为子业务请求的业务处理结果。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行计算机程序以实现上述方法的步骤。
根据本申请实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
在本申请实施例所提供的业务处理方法中,管理服务器为接收到的业务请求生成全局流水标识,并确定业务请求对应的至少一个待调用的微服务,生成每个待调用的微服务对应的子流水标识。管理服务器分别向每个待调用的微服务对应的业务服务器发送子业务请求,由于对于每个待调用的微服务,子业务请求中携带有全局流水标识和待调用的微服务对应的子流水标识,可以实现管理服务器对每个业务服务器的协调管理。
各业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引,并从预设的校验表中查询第一索引,在确定校验表中包括第一索引时,将校验表中第一索引的业务处理结果确定为子业务请求的业务处理结果。实现了在已经获取到同一子业务的业务处理结果的情况下,不需要再次进行业务处理,避免由于重复对子业务进行处理,导致各业务服务器内部业务逻辑处理错误等情况发生。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1示出了本申请实施例提供的一种分布式系统的示意图;
图2示出了本申请实施例提供的一种分布式系统执行业务处理方法的框架图;
图3示出了本申请实施例提供的一种业务处理方法的流程图;
图4示出了本申请实施例提供的一种业务处理装置的示意图;
图5示出了本申请实施例所适用的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
相关技术中,在支付过程中,如果在以太坊中要为用户提交一笔交易或事物,服务器进行代理广播到网络中,若广播成功,服务器返回交易成功结果给前端,如果因为网络问题返回交易成功的信息无法送达客户端,可能会让用户误以为交易失败,实际上是交易成功,只是确认成功的消息在网络上中丢失了,再次发起交易造成损失。
为了解决该技术问题,减少业务人员的开发成本,本申请实施例提供了一种业务处理方法、装置、电子设备及计算机可读存储介质,通过该方法,可以实现在已经获取到子业务的业务处理结果的情况下,不需要再次进行业务处理,避免由于重复对子业务进行处理,导致各业务服务器内部业务逻辑处理错误等情况发生。可以对所处理的业务分为前处理业务和实际处理业务。前处理业务可以为幂等校验业务,用来确定是否处理过实际处理业务,实际处理业务为在没有处理过实际处理业务的情况下需要处理的业务。其中,对前处理业务进行处理的过程可以视为一种幂等校验过程,可以通过业务服务器中对应的幂等校验服务器中的平台层提供统一的微服务的幂等校验,业务开发人员只需要关心业务层的业务逻辑的实现,而不用关心交易之间的幂等性校验。
为了更清楚地对本申请实施例提出的业务处理方法进行说明,结合图1和图2对本申请实施例提出的业务处理方法的应用场景进行说明。图1示出了本申请实施例提供的一种分布式系统的示意图。图2示出了本申请实施例提供的一种分布式系统执行业务处理方法的框架图。
如图1所示,分布式系统包括管理服务器101以及至少一个业务服务器102,其中,每个业务服务器包括校验服务器1021和应用服务器1022,校验服务器用于处理前处理业务,应用服务器用于处理实际处理业务。该管理服务器101分别与各业务服务器102通信连接。每个校验服务器包括平台层和业务层,主要通过该校验服务器的平台层执行幂等校验。其中,不同的应用服务器用来处理针对同一业务处理请求针对的不同子业务,校验服务器也可以为一种应用服务器。在本申请实施例中,为了区分进行幂等校验的应用服务器和其他类型的应用服务器,将进行幂等校验的应用服务器称为校验服务器,将其他类型的应用服务器统称为应用服务器。
在相关技术中,平台层主要用于进行公共服务处理,保存数据等。业务层主要用于进行根据业务逻辑对业务进行实际处理。
上述涉及的管理服务器、业务服务器、校验服务器和应用服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。
管理服务器与各业务服务器可以通过有线或无线通信方式进行直接或间接地连接。在各业务服务器中,校验服务器与应用服务器也可以通过有线或无线通信方式进行直接或间接地连接,但并不局限于此。具体也可基于实际应用场景需求确定,在此不作限定。
本领域技术人员应能理解上述服务器仅为举例,其他现有的或今后可能出现的服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
以下具体结合图1示出的分布式系统以及图2示出的框架图,对本申请实施例提供的业务处理方法进行说明。
步骤1:组合服务(即管理服务器)基于业务的不同,配置微服务注册表(即注册表),其中,注册表中包括微服务标识(subid)、不同业务的业务标识以及各业务标识对应的业务属性。
表1示出了以所处理的业务为支付类业务为例的注册表,如表1所示,对于支付业务而言,业务标识可以包括该支付业务对应的银行号(bankno)、交易代码(muid)。业务属性包括交易类型(trantype)、是否支持幂等校验(idempotentchk)、等待时间(waitingtime,相邻两次发起微服务对应的请求报文的间隔时间)、等待次数(waitingcount,同一微服务对应的请求报文的发起次数)、保存方式(savetype)、可应用的系统状态(sysmode)、通讯协议(commpmode)、MAC检查(macchk)、柜员状态检查(tellerchk)、机构状态检查(branchchk)、是否交易堵重控(repeatflg)等。
其中,与进行幂等校验有关的业务属性包括:交易类型、是否支持幂等校验、等待时间、等待次数以及保存方式。对于交易类型为账务类的业务,需要进行幂等校验。对于其他的交易类型的业务,在该交易类型的业务支持幂等校验时,需要进行幂等校验。保存方式用于表征《幂等校验表(即校验表)》的存储位置,包括在数据库中存储校验表和在缓存中存储校验表两种模式,在校验表中用于保存幂等校验请求对应的请求报文和响应报文。对于其他业务属性可以视为通过应用服务器处理的子业务对应的属性。
表1
表2示出了以所处理的业务为支付类业务为例的校验表,该校验表中可以包括第二索引(银行号,全局流水号,子流水号)和第二索引对应的幂等校验结果(即执行状态,Status)。还可以包括与支付类业务相关的交易代码(Muid)、交易名称(Muname)、微服务交易码(MicroTranCode)、所属系统(System)、创建日期(CrtDt)、请求报文(Reqmsg)和响应报文(Rspmsg)。
表二
步骤2:组合服务接收到交易请求(业务处理请求)之后,先根据交易请求生成全局流水号。一项交易请求对应一个全局流水号,在一个分布式系统中,各应用服务器对应的全局流水号相同且唯一。组合服务在调用任一业务服务器执行微服务之前,需要在组合服务侧进行前置处理,生成对应于该微服务的子流水号,并将该交易请求对应的银行号、全局流水号和子流水号作为唯一主键(key),生成请求报文(即幂等校验请求),并将该幂等校验请求发送至该微服务。对于每项交易请求来说,对于所调用的每个微服务的子流水号是唯一的。但对于不同的交易请求来说,对于所调用的同一微服务的子流水号可以是相同的。
步骤3:业务服务器接收到组合服务的请求报文之后,需要通过该微服务平台层进行前置处理,根据交易请求对应的交易代码对微服务注册表进行查询,以确定幂等校验的属性。
其中,若交易代码对应的交易类型为账务类,则确定需要对该交易请求进行幂等校验。若交易代码对应的交易类型不是账务类,则进一步确定该交易是否支持幂等校验,在该交易支持幂等校验的情况下,确定需要对该交易请求进行幂等校验,否则,结束对该交易请求进行幂等校验(即通过组合服务直接将交易请求发送给对应的应用服务器进行处理)。
如果确定该项交易需要进行幂等校验,则基于注册表确定《幂等校验表》的存储位置,并获取《幂等校验表》。其中,如果《微服务注册表》中设置的《幂等校验表》的保存方式为在数据库中保存《幂等校验表》,从数据库中获取该《幂等校验表》。如果《微服务注册表》中设置的《幂等校验表》的保存方式为在缓存中保存《幂等校验表》,从缓存中获取该《幂等校验表》。
步骤4:根据请求报文中的唯一主键,在《幂等校验表》中查询该项交易对应的幂等处理结果。若《幂等校验表》不存在该项交易对应的幂等处理结果,将该项交易的唯一主键保存在《幂等校验表》中,并且将该唯一主键的执行状态设置为执行中(即未知状态),并向该微服务的业务层发送请求,以通过该微服务的业务层对该项交易进行幂等校验。具体地,在《微服务注册表》中设置的《幂等校验表》的保存方式为在数据库中保存《幂等校验表》,将修改后的《幂等校验表》保存在数据库中。如果《微服务注册表》中设置的《幂等校验表》的保存方式为在缓存中保存《幂等校验表》,将修改后的《幂等校验表》保存在缓存中。
若《幂等校验表》中存在该项交易对应的幂等处理结果,且该项交易对应的幂等处理结果为执行成功或执行失败,则将该幂等处理结果确定为该项交易对应的幂等校验结果,并将《幂等校验表》中该项交易对应的响应报文反馈至组合服务中。
若《幂等校验表》中存在该项交易对应的幂等处理结果,且该项交易对应的幂等处理结果为执行中,则根据《微服务注册表》中设置的等待时间对当前查询线程进行睡眠,并在当前时间与上一次在《幂等校验表》中查询该项交易对应的幂等处理结果的时间之间的时间差等于等待时间时,唤醒当前查询线程,重新在《幂等校验表》中查询该项交易对应的幂等处理结果。若再次查询到该项交易对应的幂等处理结果为执行中,则继续根据《微服务注册表》中设置的等待时间睡眠当前查询线程,直至查询次数达到《微服务注册表》中设置的等待次数。若最后一次查询的查询结果为该项交易对应的幂等处理结果为执行成功,则确定该项交易对应的幂等校验结果为执行成功,否则,确定该项交易对应的幂等校验结果为执行失败,并将对应的响应报文反馈至组合服务中。
其中,在查询过程中,若查询到该项交易对应的幂等处理结果为执行成功或执行失败,则直接将当前的查询结果确定为该项交易对应的幂等校验结果,并将对应的响应报文反馈至组合服务中。
步骤5:根据微服务处理得到的该项交易对应的幂等处理结果,对《幂等校验表》中的执行状态进行修改。其中,若在查询过程中,若查询到该项交易对应的幂等处理结果为执行成功或执行失败,将《幂等校验表》中该项交易对应的幂等处理结果的执行状态进行修改。
步骤6:根据获取的该项交易对应的幂等校验结果的响应报文反馈至组合服务,结束对该交易请求进行幂等校验。
在得到幂等校验结果为执行成功时,可以通过业务服务器执行该交易中的实际处理业务。
图3示出了本申请实施例提供的一种业务处理方法的流程图,如图3所示,
步骤S310:管理服务器为接收到的业务请求生成全局流水标识。
在该实现方式中,流水号可以是根据预设的规则确定的流水号,例如,基于业务标识、业务类型或者业务标识和业务类型组合等方式确定的,也可以为基于处理的先后顺序确定的处理编号,本申请实施例对此不做限制,可以根据实际情况确定。
具体地,全局流水标识即针对同一业务标识对应的业务总流水号(上文中的全局流水号),通过全局流水标识可以唯一确定当前所处理的业务。
步骤S320:管理服务器确定业务请求对应的至少一个待调用的微服务,并生成每个待调用的微服务对应的子流水标识,其中,每个待调用的微服务对应一个业务服务器。
子流水标识即幂等校验流水号,进行幂等校验处理(即业务校验)的流水号,每个业务服务器通过全局流水标识和对应的子流水标识可以共同确定对当前所处理的业务,以进行进一步地业务处理。
步骤S330:管理服务器分别向每个待调用的微服务对应的业务服务器发送子业务请求,其中,对于每个待调用的微服务,子业务请求中携带有全局流水标识和待调用的微服务对应的子流水标识。
步骤S340:各业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引。
在通过管理服务器调用业务服务器进行相应的业务处理时,通过基于全局流水标识和幂等校验流水号生成第一索引,可以使得业务服务器基于该唯一的第一索引确定对应的业务,并执行相应的处理操作。
步骤S350:各业务服务器从预设的校验表中查询第一索引;其中,校验表中包括至少一个索引以及各索引对应的业务处理结果;以及
在确定校验表中包括第一索引时,将校验表中第一索引的业务处理结果确定为子业务请求的业务处理结果。
如前文所记载的,预设的校验表可以存储在数据库或缓存中,该数据库可以为平台层中的数据库,缓存也可以为平台层中的缓存。具体地,数据库或缓存可以为平台层对应的存储空间中,该存储空间可以为本地存储空间,也可以为云存储空间,可以根据实际情况确定,本申请实施例对此不做限制。
以一个业务服务器为例,在该业务服务器接收到子业务请求之后,可以从该校验表对应的存储位置获取到校验表,再从该校验表中查询针对第一索引的业务校验结果,该业务校验结果即表2中的幂等处理结果。
从表2中可以看出,幂等处理结果可以包括执行中(status=0)、执行成功(status=1)和执行失败(status=9)三种,其中,由于“执行成功”和“执行失败”可以直接作为幂等校验结果,因此,这两种幂等处理结果的执行状态可以称为执行结束且获取到执行结果的状态,即执行终态,对应的,“执行中”表示未执行结束且未获取到执行结果的状态,即尚未得到真正的幂等校验结果,因此,可以称为非执行终态。
在本申请实施例所提供的业务处理方法中,管理服务器为接收到的业务请求生成全局流水标识,并确定业务请求对应的至少一个待调用的微服务,生成每个待调用的微服务对应的子流水标识。管理服务器分别向每个待调用的微服务对应的业务服务器发送子业务请求,由于对于每个待调用的微服务,子业务请求中携带有全局流水标识和待调用的微服务对应的子流水标识,可以实现管理服务器对每个业务服务器的协调管理。
各业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引,并从预设的校验表中查询第一索引,在确定校验表中包括第一索引时,将校验表中第一索引的业务处理结果确定为子业务请求的业务处理结果。实现了在已经获取到同一子业务的业务处理结果的情况下,不需要再次进行业务处理,避免由于重复对子业务进行处理,导致各业务服务器内部业务逻辑处理错误等情况发生。
在一种可能的实现方式中,业务请求中包括业务标识,
各业务服务器在从预设的校验表中查询第一索引之前,基于业务标识和注册表,确定务标识对应的目标业务校验属性,注册表包括至少一个业务标识以及各业务标识对应的业务属性,每个业务标识对应的业务属性包括交易类型,或者,每个业务标识对应的业务属性包括交易类型和业务校验属性;
上述从预设的校验表中查询第一索引,包括:
若目标交易类型为指定交易类型,从校验表中查询第一索引;
若目标交易类型不是指定交易类型,在目标业务校验属性为支持业务校验时,从校验表中查询第一索引。
业务标识可以为该业务处理请求所指示的业务的标识,具体地,业务标识可以为业务名称、业务编号等,本申请实施例对此不做限制。
在该实现方式中,交易类型可以包括但不限于图2所示的账务类(trantype=0)、管理维护类(trantype=1)和查询类(trantype=2),具体可以根据实际情况确定。示例性地,可以设置指定交易类型为账户类,即对于账务类的业务,需要进行幂等校验处理。
业务校验属性包括支持幂等校验和不支持幂等校验处理。对于一项业务,若该业务的业务校验属性为支持幂等校验,则需要对该业务进行幂等校验处理。若该业务的业务校验属性为不支持幂等校验属性,则不需要对该业务进行幂等校验处理。需要说明的是,对于一项业务,在该业务的交易类型为指定交易类型时,不需要确定业务对应的业务校验属性,就可以直接对该业务进行幂等校验处理。
其中,在业务的业务校验属性为不支持幂等校验属性时,可以直接对该业务进行相应的处理。在业务的业务校验属性为支持幂等校验时,可以在对该业务进行幂等校验处理之后,再对该业务对应的实际处理业务进行相应的处理。
通过基于业务标识和预设的注册表,确定业务标识对应的目标业务属性,进而在该业务标识对应的目标交易类型为指定交易类型时,或者,在该业务标识对应的目标交易类型不是指定交易类型,但该业务标识对应的目标幂等校验属性为支持幂等校验时,基于第一索引,从校验表中查询针对第一索引的业务校验结果,可以准确地是否需要对业务标识对应的业务进行幂等校验处理。
在接收到业务处理结果的情况下,可以将第一索引和该第一索引对应的业务处理结果存储至校验表中,以在下次接收到针对该子流水标识的子业务请求后,直接通过更新后的校验表获取到针对该第一索引的业务处理结果。
在一种可能的实现方式中,该方法还包括:
各业务服务器获取校验表的存储位置,从存储位置获取校验表;
各业务服务器在获取到第一索引的业务校验结果后,根据存储位置,将第一索引和第一索引的业务校验结果更新到校验表中。
通过该方式,可以实时更新校验表,以更好地通过更新后的校验表获取到针对该第一索引的业务校验结果。
在一种可能的实现方式中,各业务服务器在确定校验表中不包括第一索引时,调用业务处理逻辑对子业务请求进行处理,生成对应的子业务处理结果;以及
将所生成的子业务处理结果作为第一索引对应的业务校验结果,并将第一索引和对应的业务校验结果添加至校验表中。
在该实现方式中,可以通过调用业务服务器的业务层所存储的业务处理逻辑对子业务请求进行处理,生成对应的子业务处理结果。
在该实现方式中,在校验表中不存在第一索引的情况下,表示尚未对第一索引对应的子业务请求中的业务进行业务处理,可以直接调用业务处理逻辑对子业务请求进行处理。
通过在校验表中不存在第一索引的情况下,将第一索引添加至校验表,并在接收到对应的业务校验结果后,将校验表中的第一索引的业务校验结果的执行状态更新为接收到的业务校验结果的执行状态,可以精确地获取到每个子业务请求对应的业务校验结果,以便可以在下次接收到对应的子业务请求后,直接通过更新后的校验表获取到针对该第一索引的业务校验结果。
在一种可能的实现方式中,上述将校验表中第一索引的业务校验结果确定为子业务请求的业务处理结果,包括:
若第一索引的业务校验结果的执行状态为目标状态,将第一索引的业务校验结果作为业务处理结果,目标状态表征执行结束且获取到执行结果的状态,执行结果包括执行成功或执行失败;
若第一索引的业务校验结果的执行状态为非目标状态,按照以下方式确定业务处理结果:
若当前时间与上一次查询所述第一索引的业务校验结果的时间之间的时间差等于预设时间间隔,再次查询第一索引的业务校验结果;
若第一索引的业务校验结果的查询次数达到预设查询次数,将最后一次查询得到的业务校验结果确定为业务处理结果;
其中,非目标状态表征未执行结束且未获取到执行结果的状态,若在查询第一索引的业务校验结果的过程中,获取到第一索引的业务校验结果的执行状态为目标状态,将校验表中第一索引的业务校验结果的执行状态更新为获取到的目标状态。
可见,在第一索引的业务校验结果的执行状态为非目标状态时,是按照预设策略等待并继续从校验表中查询第一索引的业务校验结果,直至获取到第一索引的业务校验结果的执行状态为目标状态或者满足预设条件的。其中,该预设策略即基于预设时间间隔和预设查询次数查询第一索引的业务校验结果,预设条件即当前时间与上一次查询第一索引的业务校验结果的时间之间的时间差等于预设时间间隔,以及,第一索引的业务校验结果的查询次数达到预设查询次数。
目标状态表征执行结束且获取到执行结果的状态,目标状态即执行终态。非目标状态表征未执行结束且未获取到执行结果的状态,即非执行终态,正在执行中的状态,即执行结果未知的状态。
可以根据经验值或实验值确定预设时间间隔(即等待时间)和预设查询次数(即等待次数),也可以根据实际情况确定预设时间间隔和预设查询次数。例如,可以设置预设时间间隔为500毫秒,预设查询次数为5次。
由于执行中还未得到真正的业务处理结果,通过按照预设策略等待并继续从校验表中查询第一索引的业务校验结果,可以保证最终获取到真正的业务处理结果。
通过基于以上预设策略等待并继续从校验表中查询第一索引的业务校验结果,可以保证可以最终获取到真正的业务处理结果。并且,在该查询过程中,若第一索引的业务校验结果的执行状态更新为目标状态时,将第一索引的业务校验结果的执行状态更新为获取到的目标状态,持续更新校验表,可以保证获取到的业务校验结果的准确性和实时性。
基于上述方法,本申请实施例还提供了一种幂等校验方法,该方法应用于分布式系统中,该分布式系统包括管理服务器、校验服务器和至少一个应用服务器,该管理服务器分别与各应用服务器以及校验服务器通信连接。该校验服务器可以为每个应用服务器对应的校验服务器,包括平台层和业务层,该方法由平台层执行,包括:
接收管理服务器发送的针对业务处理请求的幂等校验请求,幂等校验请求包括第一索引,第一索引包括业务标识。
从预设的校验表中查询第一索引;其中,校验表中包括至少一个索引以及各索引对应的幂等处理结果,各索引对应的幂等处理结果是业务层基于接收的历史幂等校验请求进行处理生成的。
若至少一个第二索引中包括第一索引,将校验表中第一索引的幂等处理结果确定为上述幂等校验请求的幂等校验结果。
将幂等校验结果发送给管理服务器,以使管理服务器在幂等校验结果的执行状态为执行成功时,将业务处理请求发送给对应的应用服务器进行处理。
通过本申请实施例所提供的幂等校验方法,在需要进行幂等校验请求时,通过平台层基于幂等校验请求中的第一索引,从预设的校验表中查询该第一索引的幂等处理结果,在各第二索引中包括第一索引的情况下,将校验表中第一索引的幂等处理结果确定为针对幂等校验请求的幂等校验结果。实现了在已经获取到同一业务的幂等校验结果之后,可以通过平台层获取到针对该业务对应的幂等校验请求的幂等检验结果,减少对业务层的开发成本,避免由于重复调用业务层对幂等校验请求进行处理,导致业务层内部业务逻辑处理错误等情况发生。
并且,通过将幂等校验结果发送给管理服务器,以使管理服务器在幂等校验结果的执行状态为执行成功时,将业务处理请求发送给对应的应用服务器进行处理,可以充分考虑每个业务处理请求对应的业务的幂等校验结果,更好地对该业务处理请求进行处理。
在一种可能的实现方式中,在从预设的校验表中查询第一索引之前,上述方法还可以包括:
基于业务标识和注册表,确定业务标识对应的目标业务属性,该注册表包括至少一个业务标识以及各业务标识对应的业务属性,每个业务标识对应的业务属性包括交易属性,或者,每个业务标识对应的业务属性包括交易类型和幂等校验属性;
上述从预设的校验表中查询第一索引,可以包括:
若目标交易类型为指定交易类型,从校验表中查询第一索引;
若目标交易类型不是指定交易类型,在目标幂等校验属性为支持幂等校验时,从校验表中查询第一索引。
在一种可能的实现方式中,上述方法还可以包括:
获取校验表的存储位置,从存储位置获取校验表;
在获取到第一索引的幂等校验结果后,根据该存储位置,将第一索引和第一索引的幂等校验结果更新到校验表中。
在一种可能的实现方式中,若校验表中不包括第一索引,上述方法还可以包括:
将第一索引添加到校验表中,并在校验表中设置第一索引的幂等处理结果的执行状态为非目标状态;
将幂等校验请求发送给业务层进行处理,并接收业务层返回的幂等校验结果;
在接收到业务层返回的幂等校验结果后,将校验表中第一索引的幂等处理结果的执行状态更新为接收到的幂等校验结果的执行状态。
在一种可能的实现方式中,上述将校验表中第一索引的幂等处理结果确定为幂等校验请求的幂等校验结果,可以包括:
若第一索引的幂等处理结果的执行状态为目标状态,将该第一索引的幂等校验处理结果作为上述幂等校验结果,该目标状态表征执行结束且获取到执行结果的状态,执行结果包括执行成功或执行失败;
若第一索引的幂等处理结果的执行状态为非目标状态,按照以下方式确定幂等校验结果:
若当前时间与上一次查询第一索引的幂等处理结果的时间之间的时间差等于预设时间间隔,再次查询第一索引的幂等处理结果;
若第一索引的幂等处理结果的查询次数达到预设查询次数,将最后一次查询得到的幂等处理结果确定为幂等校验结果;
其中,非目标状态表征未执行结束且未获取到执行结果的状态,若在查询第一索引的幂等处理结果的过程中,获取到第一索引的幂等处理结果的执行状态为目标状态,将校验表中第一索引的幂等处理结果的执行状态更新为获取到的目标状态。
基于与本申请实施例提供的幂等校验处理方法相同的原理,本申请实施例中还提供了一种业务处理装置。图4示出了本申请实施例提供的一种业务处理装置的示意图。如图4所示,该装置400包括:
全局流水标识生成模块410,用于通过管理服务器为接收到的业务请求生成全局流水标识;
微服务确定模块420,用于通过管理服务器确定业务请求对应的至少一个待调用的微服务,其中,每个待调用的微服务对应一个业务服务器;
子流水标识生成模块430,用于通过管理服务器生成每个待调用的微服务对应的子流水标识;
子业务请求发送模块440,用于通过管理服务器分别向每个待调用的微服务对应的业务服务器发送子业务请求,其中,对于每个待调用的微服务,子业务请求中携带有全局流水标识和待调用的微服务对应的子流水标识;
第一索引生成模块450,用于通过各业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引;
业务处理结果确定模块460,用于通过各业务服务器从预设的校验表中查询第一索引;其中,校验表中包括至少一个索引以及各索引对应的业务处理结果;以及
在确定校验表中包括第一索引时,将校验表中第一索引的业务处理结果确定为子业务请求的业务处理结果。
在一种可能的实现方式中,业务处理结果确定模块460,还用于:
通过各业务服务器在确定校验表中不包括第一索引时,调用业务处理逻辑对子业务请求进行处理,生成对应的子业务处理结果;以及
将所生成的子业务处理结果作为第一索引对应的业务校验结果,并将第一索引和对应的业务校验结果添加至校验表中。
在一种可能的实现方式中,业务处理结果确定模块460在将校验表中第一索引的业务处理结果确定为子业务请求的业务处理结果时,具体用于:
若第一索引的业务校验结果的执行状态为目标状态,将第一索引的业务校验结果作为业务处理结果,目标状态表征执行结束且获取到执行结果的状态,执行结果包括执行成功或执行失败;
若第一索引的业务校验结果的执行状态为非目标状态,按照以下方式确定业务处理结果:
若当前时间与上一次查询第一索引的业务校验结果的时间之间的时间差等于预设时间间隔,再次查询第一索引的业务校验结果;
若第一索引的业务校验结果的查询次数达到预设查询次数,将最后一次查询得到的业务校验结果确定为业务处理结果;
其中,非目标状态表征未执行结束且未获取到执行结果的状态,若在查询第一索引的业务校验结果的过程中,获取到第一索引的业务校验结果的执行状态为目标状态,将校验表中第一索引的业务校验结果的执行状态更新为获取到的目标状态。
在一种可能的实现方式中,业务请求中包括业务标识,该装置400还包括目标业务校验属性确定模块,
该目标业务校验属性确定模块,用于通过各业务服务器在从预设的校验表中查询第一索引之前,基于业务标识和注册表,确定业务标识对应的目标业务校验属性,注册表包括至少一个业务标识以及各业务标识对应的业务属性,每个业务标识对应的业务属性包括交易类型,或者,每个业务标识对应的业务属性包括交易类型和业务校验属性;
业务处理结果确定模块460在从预设的校验表中查询第一索引时,具体用于:
若目标交易类型为指定交易类型,从校验表中查询第一索引;
若目标交易类型不是指定交易类型,在目标业务校验属性为支持业务校验时,从校验表中查询第一索引。
在一种可能的实现方式中,该装置400还包括校验表获取模块,
校验表获取模块,用于通过各业务服务器获取校验表的存储位置,从存储位置获取校验表;
业务校验结果更新模块,用于通过各业务服务器在获取到第一索引的业务校验结果后,根据存储位置,将第一索引和第一索引的业务校验结果更新到校验表中。
基于与本申请实施例提供的幂等校验处理方法相同的原理,本申请实施例中还提供了一种幂等校验处理装置。该幂等校验处理装置应用于分布式系统中,该分布式系统包括管理服务器、校验服务器和至少一个应用服务器,该管理服务器分别与各应用服务器以及校验服务器通信连接,该校验服务器包括平台层和业务层,该装置为平台层,包括:
幂等校验请求接收模块,用于接收管理服务器发送的针对业务处理请求的幂等校验请求,幂等校验请求包括第一索引,第一索引包括业务标识;
幂等处理结果查询模块,用于从预设的校验表中查询第一索引;其中,校验表中包括至少一个索引以及各索引对应的幂等处理结果,各索引对应的幂等处理结果是业务层基于接收的历史幂等校验请求进行处理生成的;
幂等校验结果确定模块,用于若校验表中包括第一索引,将校验表中第一索引的幂等处理结果确定为上述幂等校验请求的幂等校验结果;
反馈模块,用于将幂等校验结果发送给管理服务器,以使管理服务器在幂等校验结果的执行状态为执行成功时,将业务处理请求发送给对应的应用服务器进行处理。
在一种可能的实现方式中,幂等校验结果确定模块在将校验表中第一索引的幂等处理结果确定为幂等校验请求的幂等校验结果时,可以具体用于:
若第一索引的幂等处理结果的执行状态为目标状态,将该第一索引的幂等校验处理结果作为上述幂等校验结果;
若第一索引的幂等处理结果的执行状态为非目标状态,按照以下方式确定幂等校验结果:
若当前时间与上一次查询第一索引的幂等处理结果的时间之间的时间差等于预设时间间隔,再次查询第一索引的幂等处理结果;
若第一索引的幂等处理结果的查询次数达到预设查询次数,将最后一次查询得到的幂等处理结果确定为幂等校验结果;
其中,非目标状态表征未执行结束且未获取到执行结果的状态,若在查询针对第一索引的幂等处理结果的过程中,获取到第一索引的幂等处理结果的执行状态为目标状态,将第一索引的幂等处理结果的执行状态更新为获取到的目标状态。
在一种可能的实现方式中,上述幂等校验结果确定模块430在校验表中不包括第一索引时,具体用于:
将第一索引添加到校验表中,并在校验表中设置第一索引的幂等处理结果的执行状态为非目标状态;
将幂等校验请求发送给业务层进行处理,并接收业务层返回的幂等校验结果;
在接收到业务层返回的幂等校验结果后,将校验表中第一索引的幂等处理结果的执行状态更新为接收到的幂等校验结果的执行状态。
在一种可能的实现方式中,幂等校验请求接收模块在从预设的校验表中查询第一索引之前,还可以具体用于:
基于业务标识和注册表,确定业务标识对应的目标业务属性,该注册表包括至少一个业务标识以及各业务标识对应的业务属性,每个业务标识对应的业务属性包括交易属性,或者,每个业务标识对应的业务属性包括交易类型和幂等校验属性;
幂等校验请求接收模块在从预设的校验表中查询第一索引时,可以具体用于:
若目标交易类型为指定交易类型,从校验表中查询第一索引;
若目标交易类型不是指定交易类型,在目标幂等校验属性为支持幂等校验时,从校验表中查询针对第一索引。
在一种可能的实现方式中,上述幂等处理结果查询模块,还可以用于:
获取校验表的存储位置,从存储位置获取校验表;
在获取到第一索引的幂等校验结果后,根据该存储位置,将第一索引和第一索引的幂等校验结果更新到校验表中。
在一种可能的实现方式中,幂等校验请求是管理服务器通过以下方式生成的:
接收业务处理请求,业务处理请求中包括业务标识;
根据业务标识,生成业务标识对应的业务流水号以及业务标识对应的幂等校验流水号;
基于业务标识、业务流水号和幂等校验流水号生成第一索引;
根据第一索引生成幂等校验请求。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
基于与本申请实施例提供的幂等校验处理方法及装置相同的原理,本申请实施例中还提供了一种电子设备(如服务器),该电子设备可以包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现本申请任一可选实施例中提供的方法的步骤。
可选地,图5示出了本申请实施例所适用的一种电子设备的结构示意图,如图5所示,图5所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种业务处理方法,其特征在于,所述方法包括:
管理服务器为接收到的业务请求生成全局流水标识;
所述管理服务器确定所述业务请求对应的至少一个待调用的微服务,并生成每个所述待调用的微服务对应的子流水标识,其中,每个所述待调用的微服务对应一个业务服务器;
所述管理服务器分别向每个所述待调用的微服务对应的业务服务器发送子业务请求,其中,对于每个所述待调用的微服务,所述子业务请求中携带有所述全局流水标识和所述待调用的微服务对应的子流水标识;
各所述业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引;
各所述业务服务器从预设的校验表中查询所述第一索引;其中,所述校验表中包括至少一个索引以及各所述索引对应的业务处理结果;以及
在确定所述校验表中包括所述第一索引时,将所述校验表中所述第一索引的业务处理结果确定为所述子业务请求的业务处理结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
各所述业务服务器在确定所述校验表中不包括所述第一索引时,调用业务处理逻辑对所述子业务请求进行处理,生成对应的子业务处理结果;以及
将所生成的子业务处理结果作为所述第一索引对应的业务校验结果,并将所述第一索引和对应的业务校验结果添加至所述校验表中。
3.根据权利要求1所述的方法,其特征在于,所述将所述校验表中所述第一索引的业务校验结果确定为所述子业务请求的业务处理结果,包括:
若所述第一索引的业务校验结果的执行状态为目标状态,将所述第一索引的业务校验结果作为所述业务处理结果,所述目标状态表征执行结束且获取到执行结果的状态,所述执行结果包括执行成功或执行失败;
若所述第一索引的业务校验结果的执行状态为非目标状态,按照以下方式确定所述业务处理结果:
若当前时间与上一次查询所述第一索引的业务校验结果的时间之间的时间差等于预设时间间隔,再次查询所述第一索引的业务校验结果;
若所述第一索引的业务校验结果的查询次数达到所述预设查询次数,将最后一次查询得到的业务校验结果确定为所述业务处理结果;
其中,所述非目标状态表征未执行结束且未获取到执行结果的状态,若在查询所述第一索引的业务校验结果的过程中,获取到所述第一索引的业务校验结果的执行状态为目标状态,将所述校验表中所述第一索引的业务校验结果的执行状态更新为获取到的目标状态。
4.根据权利要求1所述的方法,其特征在于,所述业务请求中包括业务标识,各所述业务服务器在从预设的校验表中查询所述第一索引之前,基于所述业务标识和注册表,确定所述业务标识对应的目标业务校验属性,所述注册表包括至少一个业务标识以及各业务标识对应的业务属性,每个业务标识对应的业务属性包括交易类型,或者,每个业务标识对应的业务属性包括交易类型和业务校验属性;
所述从预设的校验表中查询所述第一索引,包括:
若目标交易类型为指定交易类型,从所述校验表中查询所述第一索引;
若所述目标交易类型不是所述指定交易类型,在目标业务校验属性为支持业务校验时,从所述校验表中查询所述第一索引。
5.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
各所述业务服务器获取所述校验表的存储位置,从所述存储位置获取所述校验表;
各所述业务服务器在获取到所述第一索引的业务校验结果后,根据所述存储位置,将所述第一索引和所述第一索引的业务校验结果更新到所述校验表中。
6.一种业务处理装置,其特征在于,所述装置包括:
全局流水标识生成模块,用于通过管理服务器为接收到的业务请求生成全局流水标识;
微服务确定模块,用于通过所述管理服务器确定所述业务请求对应的至少一个待调用的微服务,其中,每个所述待调用的微服务对应一个业务服务器;
子流水标识生成模块,用于通过所述管理服务器生成每个所述待调用的微服务对应的子流水标识;
子业务请求发送模块,用于通过所述管理服务器分别向每个所述待调用的微服务对应的业务服务器发送子业务请求,其中,对于每个所述待调用的微服务,所述子业务请求中携带有所述全局流水标识和所述待调用的微服务对应的子流水标识;
第一索引生成模块,用于通过各所述业务服务器依据接收到的子业务请求中的全局流水标识和子流水标识,生成第一索引;
业务处理结果确定模块,用于通过各所述业务服务器从预设的校验表中查询所述第一索引;其中,所述校验表中包括至少一个索引以及各所述索引对应的业务处理结果;以及
在确定所述校验表中包括所述第一索引时,将所述校验表中所述第一索引的业务处理结果确定为所述子业务请求的业务处理结果。
7.根据权利要求6所述的装置,其特征在于,所述业务处理结果确定模块,还用于:
通过各所述业务服务器在确定所述校验表中不包括所述第一索引时,调用业务处理逻辑对所述子业务请求进行处理,生成对应的子业务处理结果;以及
将所生成的子业务处理结果作为所述第一索引对应的业务校验结果,并将所述第一索引和对应的业务校验结果添加至所述校验表中。
8.根据权利要求6所述的装置,其特征在于,业务处理结果确定模块在将所述校验表中所述第一索引的业务处理结果确定为所述子业务请求的业务处理结果时,具体用于:
若所述第一索引的业务校验结果的执行状态为目标状态,将所述第一索引的业务校验结果作为所述业务处理结果,所述目标状态表征执行结束且获取到执行结果的状态,所述执行结果包括执行成功或执行失败;
若所述第一索引的业务校验结果的执行状态为非目标状态,按照以下方式确定所述业务处理结果:
若当前时间与上一次查询所述第一索引的业务校验结果的时间之间的时间差等于预设时间间隔,再次查询所述第一索引的业务校验结果;
若所述第一索引的业务校验结果的查询次数达到所述预设查询次数,将最后一次查询得到的业务校验结果确定为所述业务处理结果;
其中,所述非目标状态表征未执行结束且未获取到执行结果的状态,若在查询所述第一索引的业务校验结果的过程中,获取到所述第一索引的业务校验结果的执行状态为目标状态,将所述校验表中所述第一索引的业务校验结果的执行状态更新为获取到的目标状态。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-5任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210731117.1A CN115098528B (zh) | 2022-06-24 | 2022-06-24 | 业务处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210731117.1A CN115098528B (zh) | 2022-06-24 | 2022-06-24 | 业务处理方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115098528A true CN115098528A (zh) | 2022-09-23 |
CN115098528B CN115098528B (zh) | 2023-06-13 |
Family
ID=83293001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210731117.1A Active CN115098528B (zh) | 2022-06-24 | 2022-06-24 | 业务处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098528B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610676A (zh) * | 2023-05-25 | 2023-08-18 | 中电金信软件(上海)有限公司 | 一种分布式系统中标识的生成方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553214A (zh) * | 2021-07-30 | 2021-10-26 | 国网电子商务有限公司 | 一种幂等性校验方法及装置 |
CN113760976A (zh) * | 2020-09-23 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 业务的处理方法、装置、设备及存储介质 |
CN114398631A (zh) * | 2021-12-20 | 2022-04-26 | 挂号网(杭州)科技有限公司 | 一种业务处理方法及装置、电子设备、存储介质 |
-
2022
- 2022-06-24 CN CN202210731117.1A patent/CN115098528B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760976A (zh) * | 2020-09-23 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 业务的处理方法、装置、设备及存储介质 |
CN113553214A (zh) * | 2021-07-30 | 2021-10-26 | 国网电子商务有限公司 | 一种幂等性校验方法及装置 |
CN114398631A (zh) * | 2021-12-20 | 2022-04-26 | 挂号网(杭州)科技有限公司 | 一种业务处理方法及装置、电子设备、存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610676A (zh) * | 2023-05-25 | 2023-08-18 | 中电金信软件(上海)有限公司 | 一种分布式系统中标识的生成方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115098528B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3782387B1 (en) | Trustless stateless incentivized remote node network using minimal verification clients | |
US20210157800A1 (en) | Blockchain-based transaction processing methods, apparatuses, and electronic devices | |
US11481765B2 (en) | Blockchain-based transaction processing method and apparatus and electronic device | |
US20200344189A1 (en) | Communication method and communication apparatus | |
US11251966B2 (en) | Sending cross-chain authenticatable messages | |
US20190259024A1 (en) | Security electronic file processing system and method based on block chain structure | |
CN108805702B (zh) | 基于区块链的交易缓冲/加速方法及区块链交易处理系统 | |
CN107633016B (zh) | 数据处理方法及装置和电子设备 | |
US9483386B2 (en) | Information interaction test device and method based on automatic generation of associated test cases | |
CN112446786A (zh) | 一种异常交易处理方法、装置、电子设备和可读存储介质 | |
US11250395B2 (en) | Blockchain-based transaction processing methods and apparatuses and electronic devices | |
CN114567650B (zh) | 一种数据处理方法及物联网平台系统 | |
US11630821B2 (en) | Blockchain-based data processing method and apparatus, device, and medium | |
CN108596582B (zh) | 一种基于dubbo的聚合支付平台解决方案 | |
KR20210040297A (ko) | 블록체인의 계좌 이체 처리 방법, 장치, 기기, 매체 및 프로그램 | |
CN111260421B (zh) | 一种基于区块链的电子发票管控方法及装置 | |
CN112866421B (zh) | 基于分布式缓存以及nsq的智能合约运行方法及装置 | |
CN112738294A (zh) | 基于区块链的域名解析方法、装置、电子设备和存储介质 | |
JP2024506093A (ja) | クロスチェーントランザクション処理方法と装置、電子機器及びコンピュータプログラム | |
CN115098528A (zh) | 业务处理方法、装置、电子设备及计算机可读存储介质 | |
US20240235817A9 (en) | Asset transferring method and apparatus based on multiple blockchains, device, medium, and product | |
CN115390939B (zh) | 业务处理方法和系统 | |
CN111143040A (zh) | 事务处理方法、装置、系统及存储介质 | |
CN113472781B (zh) | 一种服务获取方法、服务器及计算机可读存储介质 | |
CN114092074A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |