CN117235163A - 业务处理方法、装置、设备及存储介质 - Google Patents
业务处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117235163A CN117235163A CN202311259107.3A CN202311259107A CN117235163A CN 117235163 A CN117235163 A CN 117235163A CN 202311259107 A CN202311259107 A CN 202311259107A CN 117235163 A CN117235163 A CN 117235163A
- Authority
- CN
- China
- Prior art keywords
- idempotent
- service
- service request
- state
- identifier
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 94
- 230000004044 response Effects 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 26
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 64
- 238000004891 communication Methods 0.000 claims description 17
- 239000012634 fragment Substances 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种业务处理方法、装置、设备及存储介质,可用于金融领域或其他领域。该方法包括:获取目标客户端的业务请求,以及,所述业务请求的幂等标识。根据所述幂等标识,确定所述业务请求是否为重复请求,若是,则根据所述幂等标识,获取所述业务请求的幂等状态,所述幂等状态包括业务执行成功、业务处理中。根据所述业务请求的幂等状态,调用查询接口查询并生成所述业务请求的响应报文,所述响应报文用于指示所述业务请求的处理结果。向所述客户端返回所述响应报文。本申请的方法,避免了因幂等流水数据更新失败导致用户无法获知该业务的真实处理进度的问题。
Description
技术领域
本申请涉及金融领域或其他领域,尤其涉及一种业务处理方法、装置、设备及存储介质。
背景技术
在计算机科学中,幂等性是指一个操作执行多次与只执行一次具有相同的结果。对于银行业务系统而言,幂等性能够使得系统能够在执行业务操作时,避免进行重复交易。然而,目前银行业务系统由于可能存在网络抖动、服务器宕机等情况,因此可能会发生业务执行成功、幂等流水更新失败的情况。该情况下,由于未将第一次业务请求的处理结果成功更新至幂等流水数据中,因此存在用户无法获知该业务的真实处理进度的问题。
因此,如何对重复请求提供业务的真实处理进度是亟需解决的问题。
发明内容
本申请提供一种业务处理方法、装置、设备及存储介质,用以解决如何对重复请求提供业务的真实处理进度的问题。
第一方面,本申请提供一种业务处理方法,应用于服务端的服务器,包括:
获取目标客户端的业务请求,以及,所述业务请求的幂等标识;
根据所述幂等标识,确定所述业务请求是否为重复请求;
若是,则根据所述幂等标识,获取所述业务请求的幂等状态,所述幂等状态包括业务执行成功、业务处理中;
根据所述业务请求的幂等状态,调用查询接口查询并生成所述业务请求的响应报文;所述响应报文用于指示所述业务请求的处理结果;
向所述客户端返回所述响应报文。
可选的,所述根据所述业务请求的幂等状态,调用查询接口查询并生成所述业务请求的响应报文;
若所述幂等状态为业务处理中,则根据所述业务请求的业务标识,调用查询接口从所述服务器中获取所述业务的业务状态;
若所述幂等状态为业务执行成功,则调用查询接口从所述业务请求的幂等流水表中获取所述业务请求的处理结果作为所述业务状态;
根据所述业务状态生成所述业务请求的响应报文。
可选的,所述则根据所述业务请求的业务标识,调用查询接口从所述服务器中获取所述业务的业务状态,包括:
根据所述业务标识,调用查询接口从所述服务器中查询所述业务的当前执行流程;
在所述当前执行流程中,获取所述业务的当前执行状态;
根据所述当前执行流程、以及、所述当前执行状态,确定所述业务的业务状态。
可选的,所述根据所述幂等标识,确定所述业务请求是否为重复请求,包括:
根据所述幂等标识,获取所述业务请求对应的目标幂等流水表;
若所述幂等标识与所述幂等流水表中存储的幂等标识均不同,则所述业务请求非重复请求;
若所述幂等标识与所述幂等流水表中存储的任一幂等标识相同,则所述业务请求为重复请求。
可选的,所述根据所述幂等标识,获取所述业务请求的幂等状态,包括:
根据所述业务请求的幂等标识,在所述目标幂等流水表中获取所述幂等标识对应的幂等状态作为所述业务请求的幂等状态。
可选的,所述根据所述幂等标识,确定所述业务请求对应的目标幂等流水表,包括:
从所述幂等标识中获取幂等分片键;
根据所述幂等分片键从所述服务器的幂等流水表集合中获取所述业务请求对应的所述目标幂等流水表。
可选的,还包括:
若所述幂等状态为业务处理中,且所述业务的业务状态表征业务执行成功,则将所述幂等流水表中所述业务请求的幂等状态更新为业务执行成功,并在所述幂等流水表中更新所述幂等标识对应的所述业务请求的处理结果。
第二方面,本申请提供一种业务处理装置,应用于服务端的服务器,包括:
获取模块,用于获取目标客户端的业务请求,以及,所述业务请求的幂等标识;
处理模块,用于根据所述幂等标识,确定所述业务请求是否为重复请求;若是,则根据所述幂等标识,获取所述业务请求的幂等状态,所述幂等状态包括业务执行成功、业务处理中;
控制模块,用于根据所述业务请求的幂等状态,调用查询接口查询并生成所述业务请求的响应报文;所述响应报文用于指示所述业务请求的处理结果;
发送模块,用于向所述客户端返回所述响应报文。
第三方面,本申请提供一种电子设备,包括:处理器、通信接口,以及存储器;所述处理器分别与所述通信接口和所述存储器通信连接;
所述存储器存储计算机执行指令;
所述通信接口与外部设备进行通信交互;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面中任一项所述的业务处理方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品被处理器执行时用于实现如第一方面中任一项所述的业务处理方法。
本申请提供的业务处理方法、装置、设备及存储介质,通过获取目标客户端的业务请求,以及,该业务请求的幂等标识,根据幂等标识,确定业务请求是否为重复请求。若是重复请求,则进一步根据幂等标识,获取业务请求的幂等状态,根据业务请求的幂等状态,调用查询接口查询并生成该业务请求的响应报文并将该响应报文返回至客户端,从而避免因幂等流水数据更新失败导致用户无法获知该业务的真实处理进度的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请提供的一种业务处理的场景示意图;
图2为本申请实施例提供的一种业务处理方法的流程示意图;
图3为本申请实施例提供的另一种业务处理方法的流程示意图;
图4为本申请实施例提供的又一种业务处理方法的流程示意图
图5为本申请实施例提供的一种业务处理装置的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,本申请业务处理方法和装置可用于金融领域或其他领域,也可用于除金融领域或其他领域之外的任意领域,本申请业务处理方法和装置的应用领域不做限定。
为了便于理解首先对本申请涉及的术语名词进行解释:
幂等:一种防重机制,使客户端发送的相同业务请求不会被重复执行,并将第一次执行该业务请求的业务处理结果返回给该客户端。
下面,以金融领域为例,对本申请具体的应用场景进行介绍。图1为本申请提供的一种业务处理的场景示意图。如图1所示,该场景包括:服务端的服务器,用户端的客户端。
其中,该服务端具有幂等功能,该幂等功能例如可以是通过服务器中的代码实现的,也可以是集成为部署在服务器上的幂等模块实现的。图1以幂等功能为服务器上集成的模块为例进行介绍。该服务端可以是金融机构的业务系统,例如可以是银行业务系统。该用户端的客户端例如可以是金融机构的用户端应用程序、小程序、网页版客户端等。
用户可以通过客户端向服务端的服务器发送业务请求,以便于从该服务端获得该业务请求的处理结果。在目前客户端发送业务请求时,用户可能会因为设备的卡顿、或者操作失误(例如连续选择、点击等)、或者因为网络的卡顿,使客户端向服务器重复发送了多次相同的业务请求。服务器在接收到业务请求时,该业务请求会首先被幂等模块接收,幂等模块对该业务请求进行判断是否为重复的业务请求,若是重复的业务请求,则服务器不执行除第一次业务请求以外的其他重复业务请求。若该第一次业务请求已经处理完成,则服务器会将幂等模块中存储的该第一次业务请求的处理结果返回给客户端,以告知用户该业务请求已完成。
然而,若由于可能存在网络抖动、服务器宕机等情况,因此可能会发生业务执行成功但幂等模块中的幂等流水数据更新失败的情况(即业务执行成功,但幂等流水数据中该业务的状态仍为业务处理中)。该情况下,由于未将第一次业务请求的处理结果成功更新至幂等流水数据中,因此存在用户无法获知该业务的真实处理进度的问题。
有鉴于此,本申请提供了一种业务处理方法,通过幂等功能判断业务请求是否为重复业务请求,对于重复的业务请求,通过该业务请求对应的接口从服务端系统中获取该业务的真实业务状态,并将该真实业务状态返回至客户端,从而避免因幂等流水数据更新失败导致用户无法获知该业务的真实处理进度的问题。
下面以执行主体为银行业务系统的服务器为例,通过具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种业务处理方法的流程示意图。如图2所示,该方法可以包括:
S201、获取目标客户端的业务请求,以及,该业务请求的幂等标识。
其中,该业务请求可以是存取款请求、转账请求、信息变更请求等。该幂等标识可以是该业务请求的订单号、唯一编码、标识符等标识,可以用于标识该业务请求的业务类型、和/或、唯一标识该业务请求、和/或、标识该业务请求对应的幂等流水表等。该幂等流水表用于实现幂等功能,防止服务器重复执行业务请求。
示例性的,该幂等标识可以包括业务类型标识、业务请求标识、幂等分片键,通过该业务类型标识可以确定该幂等标识对应的业务请求的业务属于哪些业务类型,例如转账交易的业务类型标识为0311,取款交易的业务类型为0312。该业务请求表示用于唯一标识该业务请求,例如可以是该业务请求的流水号等。该幂等分片键可以用于服务器中分布式存储幂等流水表时,指示该幂等标识对应在哪个幂等流水表中。
服务器可以通过该客户端发送的业务请求的请求参数获取该业务请求的内容,以及,该业务请求对应的幂等标识,即客户端可以将该业务请求对应的业务数据和该幂等标识作为该业务请求的一部分发送至服务器,该服务器可以解析该业务请求获取该业务请求中携带的幂等标识。
S202、根据幂等标识,确定业务请求是否为重复请求。
根据该幂等标识,与存储了历史业务请求的历史幂等标识的幂等流水表中包括的幂等标识进行对比,若该幂等标识与幂等流水表中包括的幂等标识全都不相同,则表征该幂等标识对应的业务请求为新的业务请求,并非重复的业务请求。若该幂等标识与幂等流水表中包括的幂等标识存在相同的情况,则表征该幂等标识对应的业务请求为已经执行完毕或者正在执行中的业务请求,是重复的业务请求。
一种可能的实现方式,直接在幂等流水表中进行幂等标识的对比。
另一种可能的实现方式,根据该幂等标识中包括的用于标识该业务请求对应的幂等流水表的幂等分片键,确定与该幂等标识对应的目标幂等流水表后,在该目标幂等流水表中进行幂等标识的对比。
若该业务请求为重复请求,表征不需要重复执行该业务请求,需要对该业务请求的幂等状态进行进一步地确认,执行流程S203。若该业务请求非重复请求,表征需要执行该业务请求,服务器直接处理该业务请求。
S203、根据幂等标识,获取业务请求的幂等状态。
其中,该幂等状态包括业务执行成功、业务处理中。根据该幂等标识在幂等流水表中与该幂等标识相同的历史幂等标识对应的幂等状态为业务执行成功还是业务处理中,该历史幂等标识表示服务器接收的第一次该业务请求,若幂等状态为业务执行成功,表征该重复业务请求的第一次业务请求已经执行完成,服务器完成了该业务的处理,若幂等状态为业务处理中,则表征该重复业务请求的第一次业务请求还未执行完成,服务器还在处理该业务。
S204、根据业务请求的幂等状态,调用查询接口查询并生成该业务请求的响应报文。
其中,该响应报文用于指示该业务请求的处理结果。该查询接口用于查询该业务请求在银行业务系统中的处理结果,或,在幂等流水表中该业务请求的处理结果。若该幂等状态为业务执行成功,则可以通过该查询接口从幂等流水表中获取该业务的处理结果;若该幂等状态为业务处理中,则可以通过该查询接口从银行业务系统中获取该业务的当前处理状态作为该业务请求的处理结果。该响应报文可以是现有的任意一种报文格式,本申请对此不做限制。
一种可能的实现方式,对于不同的业务请求,例如可以是不同业务类型的业务请求,或者,来自不同用户的业务请求、不同时间段的业务请求等,可以对应不同的查询接口,以在银行业务系统中获取该业务的当前处理状态。
另一种可能的实现方式,对于所有的业务请求,均使用同一个查询接口从银行业务系统中获取该业务的当前处理状态。
S205、向客户端返回响应报文。
本申请实施例提供的方法,通过获取目标客户端的业务请求,以及,该业务请求的幂等标识,根据幂等标识,确定业务请求是否为重复请求。若是重复请求,则进一步根据幂等标识,获取业务请求的幂等状态,根据业务请求的幂等状态,调用查询接口查询并生成该业务请求的响应报文并将该响应报文返回至客户端,从而避免因幂等流水数据更新失败导致用户无法获知该业务的真实处理进度的问题。
下面,对于前述步骤S204中如何根据业务请求的幂等状态,调用查询接口查询并生成该业务请求的响应报文进行详细介绍。图3为本申请实施例提供的另一种业务处理方法的流程示意图。如图3所示,前述步骤S204可以包括:
S301、判断幂等状态。
若该幂等状态为业务处理中,则表征无法从幂等流水表中获取该业务的业务状态,执行流程S302;若该幂等状态为业务执行成功,则表征可以从幂等流水表中获取该业务的业务状态,执行流程S303。
S302、根据业务请求的业务标识,调用查询接口从服务器中获取该业务的业务状态。
查找服务器上用于获取业务状态的查询接口,该查询接口可以是超文本传输协议(Hypertext Transfer Protocol,HTTP)或者其他类型的应用程序编程接口(ApplicationProgramming Interface,API)。根据业务标识,构建一个查询请求,该请求将该业务标识传递给服务器以获取该业务的状态,该请求的具体形式取决于所使用的查询接口和服务器端的要求。将查询请求发送至服务器的查询接口,通过获取服务器返回的相应数据,从服务器中获取该业务的业务状态。
一种可能的实现方式,直接从服务器中获取该业务的当前执行状态作为该业务的业务状态。该当前执行状态例如可以为业务待处理、业务处理中、业务审核中、审核已通过、审核不通过、业务处理成功等。根据该服务器中该业务的进展反馈对应的当前执行状态。
另一种可能的实现方式,从服务器中获取该业务的当前执行流程,以及,该业务的当前执行状态,并根据该业务的当前执行流程和当前执行状态获得该业务的业务状态。该实现方式可以通过下述步骤实现:
S3021、根据业务标识,调用查询接口从服务器中查询业务的当前执行流程;
根据该业务标识,调用查询接口将该业务标识传输至该服务器中,服务器根据该业务标识,与银行业务系统中包括的业务请求对应的业务标识进行对比,并获取与该业务标识对应的业务当前所处的执行流程,该执行流程可以根据银行业务系统中的业务规则确定,该业务规则可以根据实际需求确定。
例如,以该业务为转账业务为例,示例性的,该业务流程可以包括账户和权限验证流程、扣款流程、转账清算流程、收款处理流程、更新账户余额流程、生成交易记录流程等,根据该业务在银行业务系统中当前所处的流程,确定该业务的当前执行流程。
S3022、在当前执行流程中,获取业务的当前执行状态;
该执行状态为该执行流程中该业务的详细状态,例如可以是待执行、执行中、执行成功、待进入下一流程、执行失败等状态。示例性的,以上述转账业务中扣款流程为例,若该扣款成功,则该执行状态为执行成功,或者为待进入下一流程,若因网络原因或者账户余额不足等原因扣款失败,则该执行状态可以为执行失败。
S3023、根据当前执行流程、以及、当前执行状态,确定业务的业务状态。
将该当前执行流程,以及,当前执行流程中该业务的当前执行状态作为该业务状态,例如,该业务请求为转账业务,通过该查询接口从服务器中查询到该转账业务在银行业务系统中处于扣款流程,且已经扣款成功,处于待进入下一流程的当前执行状态,则该业务的业务状态可以为“扣款流程-待进入下一流程”,或者,通过对应的编码进行标识,例如,扣款流程的编码为“3A”,待进入下一流程的编码为“4”,则该业务状态可以为“3A-4”。
S303、调用查询接口从业务请求的幂等流水表中获取业务请求的处理结果作为该业务的业务状态。
其中,该幂等流水表中包括的每一条数据表征一个业务请求的数据,该数据可以包括幂等标识、幂等状态、业务请求的处理结果,该幂等标识用于检测业务请求是否为重复请求,该幂等状态为前述所说的业务执行成功、业务处理中,当该幂等状态为业务执行成功时,该业务请求的处理结果为该业务的结果数据。在银行业务系统处理完成业务请求后,会将该业务请求的结果数据写入该业务请求的处理结果中。
该查询接口可以从该业务请求的幂等流水表中直接获取幂等状态为业务执行成功的业务请求对应的处理结果,例如获取该业务处理结果对应的返回数据等。将该返回数据作为该业务的业务状态发送至客户端,以满足用户的数据需求。
S304、根据业务状态生成业务请求的响应报文。
根据业务状态,填充响应报文的字段。如果业务状态表示成功,则生成成功的响应报文,并将必要的数据填入相应的字段。如果业务状态表示失败,则生成失败的响应报文,并在相应字段中提供相应的错误码和错误消息。将填充好的响应数据序列化为报文格式,如JavaScript对象表示法(JavaScript Object Notation,JSON)、可扩展标记语言(eXtensible Markup Language,XML)等格式的报文,以便能够在网络中传输。
本申请实施例提供的方法,通过在业务请求的幂等状态为业务处理中时,通过调用与银行业务系统连接的查询接口,从银行业务系统中获取该业务请求的真实处理状态,并将该真实处理状态包装为报文返回至客户端,从而使用户能够得知该重复业务请求的当前正处于的处理状态。
下面,以不同的业务请求对应不同的幂等流水表为例,对于前述步骤S202中如何根据幂等标识,确定业务请求是否为重复请求进行详细介绍。图4为本申请实施例提供的又一种业务处理方法的流程示意图。如图4所示,前述步骤S202可以包括:
S401、根据幂等标识,获取业务请求对应的目标幂等流水表。
一种可能的实现方式,根据幂等标识中的业务类型标识获取业务请求对应的目标幂等流水表。在该实现方式下,不同的业务类型对应不同的幂等流水表,将该业务类型标识作为查找目标幂等流水表的标识,从服务器的数据库中存储的多个幂等流水表中,通过该业务类型标识确定目标幂等流水表。或者,可选的,还可以通过该业务请求的请求时间,确定某一时间段内的幂等流水表,再根据该业务类型标识从该时间段内的幂等流水表中确定目标幂等流水表等。
另一种可能的实现方式,根据幂等标识中的幂等分片键获取业务请求对应的目标幂等流水表。为了提高系统性能和可扩展性,银行业务系统决定将幂等流水表拆分为多个表,每个表负责处理一部分业务请求。银行业务系统可以从业务请求的幂等标识中提取出幂等分片键,例如是业务请求的订单号的后两位数字,或者是单独设置的标识,然后根据幂等分片键确定服务器的幂等流水表集合中对应的目标幂等流水表,并将业务请求路由到对应的目标幂等流水表中进行处理。从而实现按照一定规则将幂等请求分散到不同表中,提高了幂等功能的并发处理能力。
S402、若幂等标识与幂等流水表中存储的幂等标识均不同,则业务请求为非重复请求。
一种可能的实现方式,遍历该幂等流水表中存储的幂等标识,并依次与该幂等标识进行对比,若幂等流水表中存储的幂等标识中不存在与该幂等标识相同的标识,则表征该幂等标识对应的业务请求是第一次发送至银行业务系统中,该业务请求为非重复请求。
另一种可能的实现方式,根据该幂等标识中的业务类型标识,确定该幂等流水表中存储的与该业务类型标识相同的幂等标识,并从这些业务类型标识相同的幂等标识中确定该幂等标识对应的业务请求是否为非重复请求。
S403、若幂等标识与幂等流水表中存储的任一幂等标识相同,则业务请求为重复请求。
若该幂等标识与幂等流水表中存储的任一幂等标识相同,表征该幂等标识对应的业务请求已经在被该银行业务系统处理中,或者已经处理完成,则该业务请求为重复请求,不需要再次执行该业务请求对应的业务处理流程。
在图4所示的实现方式下,根据该幂等标识,获取该业务请求的幂等状态还可以通过以下方式实现。根据业务请求的幂等标识,确定该幂等标识对应的目标幂等流水表,在该目标幂等流水表中获取该幂等标识对应的幂等状态作为该业务请求的幂等状态。在该目标幂等流水表中,遍历查找该幂等标识,在完成查找后,将查找到的该幂等标识对应的幂等状态作为该业务请求的幂等状态。
本申请实施例提供的方法,通过幂等标识中的幂等分片键确定该业务请求对应的目标幂等流水表,并从该目标幂等流水表中确定是否存在相同的幂等标识,以确定该业务请求是否为重复请求。从而提高幂等功能的性能和可扩展性,提升了幂等功能的处理效率。
此外,由于网络抖动、服务器宕机等情况,可能会发生业务执行成功、幂等流水更新失败的情况,在该情况下,第一次业务请求的处理结果可能无法成功更新至幂等流水表的数据中,导致业务已经执行成功,但幂等流水表中存储的幂等状态还是业务处理中,未能更新至业务执行成功,导致出现幂等流水表中的幂等状态与实际业务状态不符的问题。
因此,本申请实施例还可以根据查询接口从银行业务系统的服务器中查询到的该业务的业务状态,更新修正幂等流水表中存在错误的幂等状态,和/或,业务请求的处理结果。
若该业务请求对应的幂等状态为业务处理中,且从银行业务系统的服务器中查询到的该业务的业务状态表征业务执行成功,则将幂等流水表中该业务请求的幂等状态更新为业务执行成功,并在幂等流水表中更新该幂等标识对应的业务请求的处理结果。从而解决幂等流水表中的幂等状态与实际业务状态不符的问题,提高幂等流水表中数据的准确性。
图5为本申请实施例提供的一种业务处理装置的结构示意图。如图5所示,该业务处理装置可以包括:获取模块11,处理模块12,控制模块13,发送模块14。
获取模块11,用于获取目标客户端的业务请求,以及,该业务请求的幂等标识。
处理模块12,用于根据该幂等标识,确定该业务请求是否为重复请求。若是,则根据该幂等标识,获取该业务请求的幂等状态,该幂等状态包括业务执行成功、业务处理中。
控制模块13,用于根据该业务请求的幂等状态,调用查询接口查询并生成该业务请求的响应报文。该响应报文用于指示该业务请求的处理结果。
发送模块14,用于向该客户端返回该响应报文。
在一种可能的实现方式下,控制模块13,具体用于若该幂等状态为业务处理中,则根据该业务请求的业务标识,调用查询接口从该服务器中获取该业务的业务状态。若该幂等状态为业务执行成功,则调用查询接口从该业务请求的幂等流水表中获取该业务请求的处理结果作为该业务状态。根据该业务状态生成该业务请求的响应报文。
在该实现方式下,可选的,控制模块13,具体用于根据该业务标识,调用查询接口从该服务器中查询该业务的当前执行流程。在该当前执行流程中,获取该业务的当前执行状态。根据该当前执行流程、以及、该当前执行状态,确定该业务的业务状态。
在另一种可能的实现方式下,处理模块12,具体用于根据该幂等标识,获取该业务请求对应的目标幂等流水表。若该幂等标识与该幂等流水表中存储的幂等标识均不同,则该业务请求非重复请求。若该幂等标识与该幂等流水表中存储的任一幂等标识相同,则该业务请求为重复请求。
其中,可选的,处理模块12,具体用于根据该业务请求的幂等标识,在该目标幂等流水表中获取该幂等标识对应的幂等状态作为该业务请求的幂等状态。
在该实现方式下,处理模块12,具体用于从该幂等标识中获取幂等分片键。根据该幂等分片键从该服务器的幂等流水表集合中获取该业务请求对应的该目标幂等流水表。
在上述任意一种实现方式下,可选的,若该幂等状态为业务处理中,且该业务的业务状态表征业务执行成功,则控制模块13,还用于将该幂等流水表中该业务请求的幂等状态更新为业务执行成功,并在该幂等流水表中更新该幂等标识对应的该业务请求的处理结果。
本申请实施例提供的业务处理装置,可以执行上述方法实施例中的业务处理方法,其实现原理和技术效果类似,在此不再赘述。
图6为本申请实施例提供的一种电子设备的结构示意图。其中,该电子设备用于执行前述所说的业务处理方法,例如可以是前述所说的服务器。如图6所示,该电子设备600可以包括:至少一个处理器601、存储器602、通信接口603。
存储器602,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器602可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器601用于执行存储器602存储的计算机执行指令,以实现前述方法实施例所描述的方法。其中,处理器601可能是一个CPU,或者是特定集成电路(ApplicationSpecific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
处理器601通过通信接口603可以与外部设备进行通信交互,外部设备例如可以是前述所说的客户端所在的电子设备等。在具体实现上,如果通信接口603、存储器602以及处理器601独立实现,则通信接口603、存储器602以及处理器601可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口603、存储器602和处理器601集成在一块芯片上实现,则通信接口603、存储器602和处理器601可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。计算设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得计算设备实施上述业务处理方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种业务处理方法,其特征在于,应用于服务端的服务器,包括:
获取目标客户端的业务请求,以及,所述业务请求的幂等标识;
根据所述幂等标识,确定所述业务请求是否为重复请求;
若是,则根据所述幂等标识,获取所述业务请求的幂等状态,所述幂等状态包括业务执行成功、业务处理中;
根据所述业务请求的幂等状态,调用查询接口查询并生成所述业务请求的响应报文;所述响应报文用于指示所述业务请求的处理结果;
向所述客户端返回所述响应报文。
2.根据权利要求1所述的方法,其特征在于,所述根据所述业务请求的幂等状态,调用查询接口查询并生成所述业务请求的响应报文;
若所述幂等状态为业务处理中,则根据所述业务请求的业务标识,调用查询接口从所述服务器中获取所述业务的业务状态;
若所述幂等状态为业务执行成功,则调用查询接口从所述业务请求的幂等流水表中获取所述业务请求的处理结果作为所述业务状态;
根据所述业务状态生成所述业务请求的响应报文。
3.根据权利要求2所述的方法,其特征在于,所述则根据所述业务请求的业务标识,调用查询接口从所述服务器中获取所述业务的业务状态,包括:
根据所述业务标识,调用查询接口从所述服务器中查询所述业务的当前执行流程;
在所述当前执行流程中,获取所述业务的当前执行状态;
根据所述当前执行流程、以及、所述当前执行状态,确定所述业务的业务状态。
4.根据权利要求1所述的方法,其特征在于,所述根据所述幂等标识,确定所述业务请求是否为重复请求,包括:
根据所述幂等标识,获取所述业务请求对应的目标幂等流水表;
若所述幂等标识与所述幂等流水表中存储的幂等标识均不同,则所述业务请求非重复请求;
若所述幂等标识与所述幂等流水表中存储的任一幂等标识相同,则所述业务请求为重复请求。
5.根据权利要求4所述的方法,其特征在于,所述根据所述幂等标识,获取所述业务请求的幂等状态,包括:
根据所述业务请求的幂等标识,在所述目标幂等流水表中获取所述幂等标识对应的幂等状态作为所述业务请求的幂等状态。
6.根据权利要求4或5所述的方法,其特征在于,所述根据所述幂等标识,确定所述业务请求对应的目标幂等流水表,包括:
从所述幂等标识中获取幂等分片键;
根据所述幂等分片键从所述服务器的幂等流水表集合中获取所述业务请求对应的所述目标幂等流水表。
7.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
若所述幂等状态为业务处理中,且所述业务的业务状态表征业务执行成功,则将所述幂等流水表中所述业务请求的幂等状态更新为业务执行成功,并在所述幂等流水表中更新所述幂等标识对应的所述业务请求的处理结果。
8.一种业务处理装置,其特征在于,应用于服务端的服务器,包括:
获取模块,用于获取目标客户端的业务请求,以及,所述业务请求的幂等标识;
处理模块,用于根据所述幂等标识,确定所述业务请求是否为重复请求;若是,则根据所述幂等标识,获取所述业务请求的幂等状态,所述幂等状态包括业务执行成功、业务处理中;
控制模块,用于根据所述业务请求的幂等状态,调用查询接口查询并生成所述业务请求的响应报文;所述响应报文用于指示所述业务请求的处理结果;
发送模块,用于向所述客户端返回所述响应报文。
9.一种电子设备,其特征在于,包括:处理器,通信接口以及存储器,所述处理器分别与所述通信接口和所述存储器通信连接;
所述存储器存储计算机执行指令;
所述通信接口与外部设备进行通信交互;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311259107.3A CN117235163A (zh) | 2023-09-27 | 2023-09-27 | 业务处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311259107.3A CN117235163A (zh) | 2023-09-27 | 2023-09-27 | 业务处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117235163A true CN117235163A (zh) | 2023-12-15 |
Family
ID=89090885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311259107.3A Pending CN117235163A (zh) | 2023-09-27 | 2023-09-27 | 业务处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235163A (zh) |
-
2023
- 2023-09-27 CN CN202311259107.3A patent/CN117235163A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107633016B (zh) | 数据处理方法及装置和电子设备 | |
CN108647357B (zh) | 数据查询的方法及装置 | |
US7490272B2 (en) | Method for validating the proper operation of a transactional management system | |
JP2019500680A (ja) | データ処理方法及び装置 | |
CN110175833B (zh) | 一种绑定银行卡信息的计算机装置、方法、系统及介质 | |
CN110019444B (zh) | 一种操作请求处理方法、装置、设备及系统 | |
CN113919948B (zh) | 一种数据更新方法、装置、电子设备及存储介质 | |
CN111901299A (zh) | 申请认证方法、装置、电子设备和存储介质 | |
CN111897822A (zh) | 账户状态信息的处理方法、装置、电子设备及存储介质 | |
CN116993523A (zh) | 配置化对账方法、装置、设备及存储介质 | |
CN117235163A (zh) | 业务处理方法、装置、设备及存储介质 | |
CN113836145B (zh) | 请求数据的方法、装置、电子设备及计算机可读存储介质 | |
CN113691618B (zh) | 消息通知方法、装置、消息中心及存储介质 | |
CN115550380A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN107220818B (zh) | 网上支付方法及装置 | |
JP7174538B2 (ja) | 電文処理装置 | |
CN113032836A (zh) | 数据脱敏方法和装置 | |
CN112035711B (zh) | 信息查询方法、装置、设备及存储介质 | |
CN113111631B (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN113076331B (zh) | 中台数据处理方法、装置、设备、存储介质及程序产品 | |
CN110889040B (zh) | 用于推送信息的方法和装置 | |
CN111222872B (zh) | 基于支付渠道的用户进件方法、装置及系统 | |
CN107992521B (zh) | 处理用户的服务请求的方法及装置 | |
CN117193978A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN116955765A (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 |