CN116166390A - 一种业务处理方法、装置、电子设备和存储介质 - Google Patents

一种业务处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116166390A
CN116166390A CN202310184991.2A CN202310184991A CN116166390A CN 116166390 A CN116166390 A CN 116166390A CN 202310184991 A CN202310184991 A CN 202310184991A CN 116166390 A CN116166390 A CN 116166390A
Authority
CN
China
Prior art keywords
target
service
flow node
flow
processing
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
CN202310184991.2A
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
CCB Finetech Co Ltd
Original Assignee
China Construction Bank Corp
CCB Finetech Co 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 China Construction Bank Corp, CCB Finetech Co Ltd filed Critical China Construction Bank Corp
Priority to CN202310184991.2A priority Critical patent/CN116166390A/zh
Publication of CN116166390A publication Critical patent/CN116166390A/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/23Updating
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供了一种业务处理方法、装置、电子设备和存储介质,可以应用于计算机技术领域、金融领域或其他领域。该方法包括:响应于业务处理请求,基于业务处理请求携带的目标业务的业务标识,在事务处理器中创建与目标业务对应的任务实例;基于任务实例,确定多个流程节点和多个流程节点的流转顺序;以及对于每个流程节点,在确定与流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与流程节点对应的第一目标业务组件来处理目标业务,得到流程节点的处理结果。

Description

一种业务处理方法、装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域和金融领域,更具体地,涉及一种业务处理方法、装置、电子设备和存储介质。
背景技术
交易一致性指跨组件的多个业务流程必须确保全部成功或者全部失败,而不允许出现部分成功部分失败的情况。
在相关技术中,交易一致性方法是将组件内几个业务处理步骤中对数据库读写操作的组成一个事务,通过“事务提交“或者“回滚操作“确保在此事务下的所有操作全部成功或全部失败。然而,相关技术中的方法只适用于所有业务处理步骤共享一个数据库情况,在事务跨组件,如业务处理即需要更新数据,又需要操作其他设备或者调用其他的系统情况就会导致事务回滚操作复杂,容易失败等问题。
发明内容
有鉴于此,本公开提供了一种业务处理方法、装置、电子设备、可读存储介质和计算机程序产品。
本公开的一个方面提供了一种业务处理方法,包括:
响应于业务处理请求,基于上述业务处理请求携带的目标业务的业务标识,在事务处理器中创建与上述目标业务对应的任务实例;
基于上述任务实例,确定多个流程节点和上述多个流程节点的流转顺序;以及
对于每个上述流程节点,在确定与上述流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与上述流程节点对应的第一目标业务组件来处理上述目标业务,得到上述流程节点的处理结果。
根据本公开的实施例,上述调用与上述流程节点对应的第一目标业务组件来处理上述目标业务,得到上述流程节点的处理结果,包括:基于上述流程节点包括的组件接口,确定上述第一目标业务组件;以及通过上述组件接口的地址,调用上述第一目标业务组件来处理上述目标业务,得到上述流程节点的处理结果。
根据本公开的实施例,还包括:在上述第一目标流程节点的处理结果表示未处理成功的情况下,基于与上述第一目标流程节点关联的回滚策略,调用与上述第一目标流程节点对应的第二目标业务组件来执行回滚操作;基于上述流转顺序确定与上述第一目标流程节点关联的第二目标流程节点;以及基于与上述第二目标流程节点关联的回滚策略,调用与上述第二目标流程节点对应的第三目标业务组件来执行回滚操作。
根据本公开的实施例,还包括:利用数据库记录上述任务实例和上述任务实例中流程节点的处理结果。
根据本公开的实施例,还包括:在上述事务处理器触发异常事件的情况下,基于上述数据库确定与当前业务对应的目标任务实例和上述目标任务实例中的第三目标流程节点;以及将上述目标任务实例加载到上述事务处理器,以调用与上述第三目标流程节点对应的第四目标业务组件来处理上述当前业务。
根据本公开的实施例,上述基于上述业务处理请求包括目标业务的业务标识,在事务处理器中创建与上述目标业务对应的任务实例,包括:基于上述目标业务的业务标识,确定上述目标业务所属的业务类型;基于上述目标业务所属的业务类型,获取实例模板;以及基于上述实例模板和上述业务标识,在上述事务处理器中创建上述任务实例。
本公开的另一个方面提供了一种业务处理装置,包括:
任务实例创建模块,用于响应于业务处理请求,基于上述业务处理请求包括携带的目标业务的业务标识,在事务处理器中创建与上述目标业务对应的任务实例;
流转顺序确定模块,用于基于上述任务实例,确定多个流程节点和上述多个流程节点的流转顺序;以及
处理结果获取模块,用于对于每个上述流程节点,在确定与上述流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与上述流程节点对应的第一目标业务组件来处理上述目标业务,得到上述流程节点的处理结果。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当所述一个或多个指令被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,采用了利用事物处理器创建任务实例,在进行业务处理时只需利用任务实例的流程节点调用相对应的组件的技术手段,至少部分地克服了各个组件间直接进行调用,使得各个组件之间耦合度过高,以及整个业务流程都分散在单个组件中使得整体业务流程无法进行有效控制的技术问题,实现可以掌握业务的整体逻辑以及完成各个组件之间的解耦,同时在满足业务一致性原则下,提高了流程节点的回滚或重试操作的效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1A示意性示出了相关技术中的事务处理流程图;
图1B示意性示出了相关技术中事务处理失败时的处理流程图;
图2示意性示出了根据本公开实施例的可以应用业务处理方法和装置的示例性系统架构;
图3示意性示出了根据本公开实施例的业务处理方法的流程图;
图4示意性示出了根据本公开实施例的在第一目标流程节点未处理成功情况下的处理方法流程图;
图5示意性示出了根据本公开实施例的异常事件处理方法的流程图;
图6示意性示出了根据本公开实施例的业务处理方法的示意图;
图7示意性示出了根据本公开的实施例的业务处理装置的框图;
图8示意性示出了根据本公开实施例的适于实现业务处理方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
交易一致性指跨组件的多个业务流程必须确保全部成功或者全部失败,而不允许出现部分成功部分失败的情况。在相关技术中,交易一致性方法是将组件内几个业务处理步骤中对数据库读写操作的组成一个事务,通过“事务提交“或者“回滚操作“确保在此事务下的所有操作全部成功或全部失败。然而,相关技术中的方法只适用于所有业务处理步骤共享一个数据库情况,在事务跨组件,如业务处理即需要更新数据,又需要操作其他设备或者调用其他的系统情况就会导致事务回滚操作复杂,容易失败等问题。
在多组件不能使用单数据库事务的情况下,一般维护交易一致性使用冲正或者重试方式。
图1A示意性示出了相关技术中的事务处理流程图。
如图1A所示,在业务人员正常提交事务时,组件1完成业务处理1并更新数据库,组件1调用组件2;组件2完成业务处理2并实现充值数字钱包,组件2调用组件3;组件3完成业务处理3并更新总账;业务流程完成,事务提交结束。
图1B示意性示出了相关技术中事务处理失败时的处理流程图。
如图1B所示,假如组件3处理时发生异常,业务组件2调用组件3发生超时或者返回异常,组件2会返回异常给组件1,组件1返回异常给业务人员,业务人员接收异常后提交冲正操作,业务组件1、2、3全部执行冲正回滚掉异常交易,或者业务人员再次发起交易进行重试操作。执行冲正回滚掉异常交易或者重试时也无法保证百分百成功,一般此时各个组件会记录交易全局身份标识号到异常交易列表,由人工处理此类异常。
由此可得,相关技术存在的缺陷包括:整个业务流程分散在各个组件,单个组件只知道调用任务的上游和下游,对整个业务链路没有全局的掌握。在大型机构中各个业务处理组件由不同团队甚至是不同地域开发完成,整体的交易流程维护难度较大,协同成本较高。各个组件独自记录异常交易,最后处理整个异常交易时需要汇总并根据全局交易身份标识号进行合并去重等操作,较为复杂。业务组件在部署时往往会部署多个实例,比如业务组件2部署3个实例,其中某个实例在调用组件3时遇到异常被删除,此时该实例的调用状态也随之消失,整个交易链路无法恢复导致全部交易失败,形成整个交易链路的等待和大量异常交易。
有鉴于此,本公开的实施例提供了一种业务处理方法、一种业务处理装置、一种电子设备、一种可读存储介质和一种计算机程序产品。该方法包括:响应于业务处理请求,基于业务处理请求携带的目标业务的业务标识,在事务处理器中创建与目标业务对应的任务实例;基于任务实例,确定多个流程节点和多个流程节点的流转顺序;以及对于每个流程节点,在确定与流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与流程节点对应的第一目标业务组件来处理目标业务,得到流程节点的处理结果。
需要说明的是,本公开实施例确定的业务处理方法和装置可用于计算机领域或金融领域,例如:在银行业务处理系统中的应用。本公开实施例确定的业务处理方法和装置也可用于除计算机领域和金融领域之外的任意领域,例如:应用于其他领域内的业务处理系统中。本公开实施例确定的业务处理方法和装置的应用领域不做限定。
在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
图2示意性示出了根据本公开实施例的可以应用业务处理方法和装置的示例性系统架构。需要注意的是,图2所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图2所示,根据该实施例的系统架构200可以包括终端设备201、202、203,网络204和服务器205。网络204用以在终端设备201、202、203和服务器205之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备201、202、203通过网络204与服务器205交互,以接收或发送消息等。终端设备201、202、203上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
终端设备201、202、203可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器205可以是提供各种服务的服务器,例如对用户利用终端设备201、202、203所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的业务处理方法一般可以由服务器205执行。相应地,本公开实施例所提供的业务处理装置一般可以设置于服务器205中。本公开实施例所提供的业务处理方法也可以由不同于服务器205且能够与终端设备201、202、203和/或服务器205通信的服务器或服务器集群执行。相应地,本公开实施例所提供的业务处理装置也可以设置于不同于服务器205且能够与终端设备201、202、203和/或服务器205通信的服务器或服务器集群中。或者,本公开实施例所提供的业务处理方法也可以由终端设备201、202、或203执行,或者也可以由不同于终端设备201、202、或203的其他终端设备执行。相应地,本公开实施例所提供的业务处理装置也可以设置于终端设备201、202、或203中,或设置于不同于终端设备201、202、或203的其他终端设备中。
例如,待处理业务可以原本存储在终端设备201、202、或203中的任意一个(例如,终端设备202,但不限于此)之中,或者存储在外部存储设备上并可以导入到终端设备202中。然后,终端设备202可以在本地执行本公开实施例所提供的业务处理方法,或者将待处理业务发送到其他终端设备、服务器、或服务器集群,并由接收该待处理业务的其他终端设备、服务器、或服务器集群来执行本公开实施例所提供的业务处理方法。
应该理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图3示意性示出了根据本公开实施例的业务处理方法的流程图。
如图3所示,该方法包括操作S301~S303。
在操作S301,响应于业务处理请求,基于业务处理请求携带的目标业务的业务标识,在事务处理器中创建与目标业务对应的任务实例。
根据本公开的实施例,根据该业务处理请求携带的目标业务的业务标识,在事物处理器中创建与目标业务对应的任务实例,其中,每个目标业务都携带有对应的业务标识,目标业务可以为前端交易人员提交的业务操作。
根据本公开的实施例,基于业务处理请求包括目标业务的业务标识,在事务处理器中创建与目标业务对应的任务实例,包括:基于目标业务的业务标识,确定目标业务所属的业务类型;基于目标业务所属的业务类型,获取实例模板;以及基于实例模板和业务标识,在事务处理器中创建任务实例。
根据本公开的实施例,利用事物处理器根据实例模板和业务标识创建目标业务的任务实例,根据得到的任务实例更加方便有效的控制每一个目标业务的整体业务处理逻辑,同时,方便业务归口人员进行统一维护。
在操作S302,基于任务实例,确定多个流程节点和多个流程节点的流转顺序。
根据本公开的实施例,目标业务携带有多个操作步骤,一般需要多个组件按照顺序进行处理,而利用事物处理器可以将目标业务的操作步骤创建成一个个流程节点,每个流程节点调用对应的业务组件来进行任务处理,尽可能的实现了各个组件之间的解耦。
根据本公开的实施例,根据事物处理器创建的任务实例,可以确定在进行目标业务的处理时,所需要的流程节点和每一个流程节点的顺序。例如:完成任务实例A需要完成流程节点1、流程节点2及流程节点3,且完成顺序为流程节点1到流程节点3。
根据本公开的实施例,流程节点的顺序可以根据具体情况进行编排。
根据本公开的实施例,所有的流程节点构成任务实例,在事物处理器中,可以掌控任务实例完成的整体流程。
在操作S303,对于每个流程节点,在确定与流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与流程节点对应的第一目标业务组件来处理目标业务,得到流程节点的处理结果。
根据本公开的实施例,目标业务需要满足业务一致性要求或交易一致性要求,即要么所有的操作步骤都成功,要么都失败,同样的,任务实例也需要满足业务一致性要求,即要么所有的流程节点都处理成功,要么都处理失败。
根据本公开的实施例,与该流程节点关联的第一目标流程节点可以该流程节点的上一个流程节点。例如:流程节点为2,则第一目标流程节点可以为1。
根据本公开的实施例,基于流程节点包括的组件接口,确定第一目标业务组件;以及通过组件接口的地址,调用第一目标业务组件来处理目标业务,得到流程节点的处理结果。
根据本公开的实施例,组件接口的类型不进行定义,可以为更新数据库及回滚数据库的事务型操作,也可以为查询接口。
根据本公开的实施例,利用调用与流程节点对应的目标业务组件来处理目标业务,只需要实现根据每个流程节点对应的组件接口调用目标组件来进行处理,各个目标组件之间无任何依赖,达成目标组件之间的解耦。
根据本公开的实施例,采用了利用事物处理器创建任务实例,在进行业务处理时只需利用任务实例的流程节点调用相对应的组件的技术手段,至少部分地克服了各个组件间直接进行调用,使得各个组件之间耦合度过高,以及整个业务流程都分散在单个组件中使得整体业务流程无法进行有效控制的技术问题,实现可以掌握业务的整体逻辑以及完成各个组件之间的解耦,同时在满足业务一致性原则下,提高了流程节点的回滚或重试操作的效率。
下面参考图4和图5,结合具体实施例对图3所示的方法做进一步说明。
图4示意性示出了根据本公开实施例的在第一目标流程节点未处理成功情况下的处理方法流程图。
根据本公开的实施例,第一目标流程节点的处理结果表示未处理成功的情况下,处理方法包括:S401~S403。
在操作S401,在第一目标流程节点的处理结果表示未处理成功的情况下,基于与第一目标流程节点关联的回滚策略,调用与第一目标流程节点对应的第二目标业务组件来执行回滚操作。
在操作S402,基于流转顺序确定与第一目标流程节点关联的第二目标流程节点。
在操作S403,基于与第二目标流程节点关联的回滚策略,调用与第二目标流程节点对应的第三目标业务组件来执行回滚操作。
根据本公开的实施例,第二目标节点为第一目标节点之前的所有流程节点,例如假设一个目标业务包括流程节点1、流程节点2以及流程节点3,其中,上述三个流程节点的流转顺序为流程节点1至流程节点3,则第一目标节点可以为流程节点3,第二目标节点可以为流程节点1和流程节点2。
根据本公开的实施例,每个流程节点的回滚策略都是预先定义好的,根据回滚策略调用与该流程节点对应的目标业务组件来完成该流程节点的回滚操作。
根据本公开的实施例,如果某个流程节点的处理未成功,则将所有的流程节点都进行回滚,可以尽可能的保证交易一致性原则。同时采用事物处理器和回滚相结合的技术手段,可以为每个流程节点调用业务组件并且为每个流程节点都预设好回滚策略的技术手段,将有效提升回滚效率,增加回滚成功率。
根据本公开的实施例,利用数据库记录任务实例和任务实例中流程节点的处理结果。
根据本公开的实施例,在对目标业务进行处理过程中,从任务实例的创建,到对每一个流程节点的处理,不论是失败还是成功,又或者是出现其他情况都会一一同步并记录在数据库中。
利用数据库进行实时记录事物处理器的业务处理状态和每一个步骤,对每一个目标业务的处理结果和过程都进行记录,使得处理出现异常时可以及时进行恢复,同时方便进行异常信息统计,有利于进行错误修正或查阅。此外,数据库中按照执行的目标业务汇聚了各个业务处理的异常情况,便于进行分析和修正操作。其中,修正操作可以为人工或系统自动化处理。
图5示意性示出了根据本公开实施例的异常事件处理方法的流程图。
根据本公开的实施例,响应于事务处理器出发异常事件,处理方法包括:S501~S502。
在操作S501,在事务处理器触发异常事件的情况下,基于数据库确定与当前业务对应的目标任务实例和目标任务实例中的第三目标流程节点。
在操作S502,将目标任务实例加载到事务处理器,以调用与第三目标流程节点对应的第四目标业务组件来处理当前业务。
根据本公开的实施例,如果事物处理器触发异常事件或者事物处理器监测到事物的状态为异常状态,则根据数据库记录的信息确认出现异常的目标任务实例和第三目标流程节点,再将目标任务实例加载到事物处理器后,调用出现异常的第三目标流程节点对应的第四目标业务组件来继续处理该目标流程节点。其中,第三目标流程节点可以为在出现异常事件时事物处理器正在进行处理的目标流程节点。
在一些实施例中,根据数据库记录的信息可以直接恢复到出现异常事件前的任务执行阶段,避免因异常事件造成的重复操作或信息丢失等。
需要说明的是,本公开实施例中的流程图所示的操作除非明确说明不同操作之间存在执行的先后顺序,或者不同操作在技术实现上存在执行的先后顺序,否则,多个操作之间的执行顺序可以不分先后,多个操作也可以同时执行。
下面参考图6,结合具体实施例对图3所示的方法做进一步说明。
图6示意性示出了根据本公开实施例的业务处理方法的示意图。
其中,图6为与图3所示的方法的同一种方法的不同说明方式。
如图6所示,提交业务601,根据提交的业务601在事物处理器602中创建任务实例603。其中,提交的业务交易包含多个操作步骤,需要多个业务处理组件按一定顺序处理,所有处理需要满足交易一致性要求,即要么都成功,要么所有操作都取消。业务601不直接调用后端多个业务组件,而是调用事务处理器602中的任务。
事务处理器602中定义并维护各种类型的任务实例603,当事务处理器602接收到业务601后会创建相应的任务实例603,并记录创建相应的任务实例603的各种信息到数据库607。任务实例会按定义好的顺序调用业务组件614、615及616,如果流程节点604、605、606中的步骤全部执行成功,事务提交完成,并记录执行结果到数据库。如果执行失败会记录失败结果到数据库。其中,流程节点相当于业务处理
各种类型的任务实例603由各个业务归口人员维护,某个具体任务中会定义事务的开始、处理步骤、回滚步骤及事务结束。当事务处理器602创建任务实例603时,任务实例按预先定义好的顺序依次执行流程节点也就是业务处理604、605及606,该顺序可以是依次执行也可以定义更为复杂的流程顺序。业务处理即流程节点605会调用对应的业务组件615,成功则进行下一步骤,如果失败,任务实例603中会执行预先定义好的回滚操作。任务的当前执行步骤及执行结果都会被记录到事务处理器603的数据。事务管理器603会监测任务状态,任务的进程被异常关闭时,事务管理器603会重新从数据库607加载任务状态并继续执行。所有异常任务会记录到数据库607,便于后期人工处理即统计分析。
对应的业务组件614、615及616只需实现被任务调用的接口,无需关心整个业务的逻辑。业务组件实现的接口可以是更新数据库及回滚数据库这类事务型操作,也可以是简单的查询接口,无回滚操作。各个组件之间无任何依赖,实现了解耦。
事务处理器603的数据库607记录任务的创建、状态更新及异常情况,任务所有步骤的执行均记录在数据库607中,任务异常关闭及卡死时,均可以通过数据库恢复任务并继续执行。数据库607按任务汇聚了各个业务处理的异常情况,便于分析及自动化操作。
图7示意性示出了根据本公开的实施例的业务处理装置的框图。
如图7所示,业务处理装置700包括任务实例创建模块710、流转顺序确定模块720及处理结果获取模块730。
任务实例创建模块710,用于响应于业务处理请求,基于业务处理请求包括携带的目标业务的业务标识,在事务处理器中创建与目标业务对应的任务实例。
流转顺序确定模块720,用于基于任务实例,确定多个流程节点和多个流程节点的流转顺序。
处理结果获取模块730,用于对于每个流程节点,在确定与流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与流程节点对应的第一目标业务组件来处理目标业务,得到流程节点的处理结果。
根据本公开的实施例,处理结果获取模块730具体包括:
第一目标业务组件确定单元,用于基于所述流程节点包括的组件接口,确定所述第一目标业务组件。
处理结果确定单元,用于通过所述组件接口的地址,调用所述第一目标业务组件来处理所述目标业务,得到所述流程节点的处理结果。
根据本公开的实施例,业务处理装置700还包括:
第一回滚执行模块,用于在所述第一目标流程节点的处理结果表示未处理成功的情况下,基于与所述第一目标流程节点关联的回滚策略,调用与所述第一目标流程节点对应的第二目标业务组件来执行回滚操作。
流程节点确定模块,用于基于所述流转顺序确定与所述第一目标流程节点关联的第二目标流程节点。
第二回滚执行模块,用于基于与所述第二目标流程节点关联的回滚策略,调用与所述第二目标流程节点对应的第三目标业务组件来执行回滚操作。
根据本公开的实施例,业务处理装置700还包括:
数据库记录模块,用于利用数据库记录所述任务实例和所述任务实例中流程节点的处理结果。
根据本公开的实施例,业务处理装置700还包括:
任务实例确定模块,用于在所述事务处理器触发异常事件的情况下,基于所述数据库确定与当前业务对应的目标任务实例和所述目标任务实例中的第三目标流程节点。
异常事件处理模块,用于将所述目标任务实例加载到所述事务处理器,以调用与所述第三目标流程节点对应的第四目标业务组件来处理所述当前业务。
根据本公开的实施例,任务实例创建模块710具体包括:
业务类型确定单元,用于基于所述目标业务的业务标识,确定所述目标业务所属的业务类型。
实例模板获取单元,用于基于所述目标业务所属的业务类型,获取实例模板。
任务实例确定单元,用于基于所述实例模板和所述业务标识,在所述事务处理器中创建所述任务实例。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,任务实例创建模块710、流转顺序确定模块720及处理结果获取模块730中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,任务实例创建模块710、流转顺序确定模块720及处理结果获取模块730中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,任务实例创建模块710、流转顺序确定模块720及处理结果获取模块730中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中业务处理装置部分与本公开的实施例中业务处理方法部分是相对应的,业务处理装置部分的描述具体参考业务处理方法部分,在此不再赘述。
图8示意性示出了根据本公开实施例的适于实现业务处理方法的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口yy,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的业务处理方法。
在该计算机程序被处理器801执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种业务处理方法,包括:
响应于业务处理请求,基于所述业务处理请求携带的目标业务的业务标识,在事务处理器中创建与所述目标业务对应的任务实例;
基于所述任务实例,确定多个流程节点和所述多个流程节点的流转顺序;以及
对于每个所述流程节点,在确定与所述流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与所述流程节点对应的第一目标业务组件来处理所述目标业务,得到所述流程节点的处理结果。
2.根据权利要求1所述的方法,其中,所述调用与所述流程节点对应的第一目标业务组件来处理所述目标业务,得到所述流程节点的处理结果,包括:
基于所述流程节点包括的组件接口,确定所述第一目标业务组件;以及
通过所述组件接口的地址,调用所述第一目标业务组件来处理所述目标业务,得到所述流程节点的处理结果。
3.根据权利要求1所述的方法,还包括:
在所述第一目标流程节点的处理结果表示未处理成功的情况下,基于与所述第一目标流程节点关联的回滚策略,调用与所述第一目标流程节点对应的第二目标业务组件来执行回滚操作;
基于所述流转顺序确定与所述第一目标流程节点关联的第二目标流程节点;以及
基于与所述第二目标流程节点关联的回滚策略,调用与所述第二目标流程节点对应的第三目标业务组件来执行回滚操作。
4.根据权利要求1所述的方法,还包括:
利用数据库记录所述任务实例和所述任务实例中流程节点的处理结果。
5.根据权利要求4所述的方法,还包括:
在所述事务处理器触发异常事件的情况下,基于所述数据库确定与当前业务对应的目标任务实例和所述目标任务实例中的第三目标流程节点;以及
将所述目标任务实例加载到所述事务处理器,以调用与所述第三目标流程节点对应的第四目标业务组件来处理所述当前业务。
6.根据权利要求1所述的方法,其中,所述基于所述业务处理请求包括目标业务的业务标识,在事务处理器中创建与所述目标业务对应的任务实例,包括:
基于所述目标业务的业务标识,确定所述目标业务所属的业务类型;
基于所述目标业务所属的业务类型,获取实例模板;以及
基于所述实例模板和所述业务标识,在所述事务处理器中创建所述任务实例。
7.一种业务处理装置,包括:
任务实例创建模块,用于响应于业务处理请求,基于所述业务处理请求包括携带的目标业务的业务标识,在事务处理器中创建与所述目标业务对应的任务实例;
流转顺序确定模块,用于基于所述任务实例,确定多个流程节点和所述多个流程节点的流转顺序;以及
处理结果获取模块,用于对于每个所述流程节点,在确定与所述流程节点关联的第一目标流程节点的处理结果表示处理成功的情况下,调用与所述流程节点对应的第一目标业务组件来处理所述目标业务,得到所述流程节点的处理结果。
8.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个指令,
其中,当所述一个或多个指令被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,所述可执行指令被处理器执行时使处理器实现权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被执行时用于实现权利要求1至6中任一项所述的方法。
CN202310184991.2A 2023-02-20 2023-02-20 一种业务处理方法、装置、电子设备和存储介质 Pending CN116166390A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310184991.2A CN116166390A (zh) 2023-02-20 2023-02-20 一种业务处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310184991.2A CN116166390A (zh) 2023-02-20 2023-02-20 一种业务处理方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116166390A true CN116166390A (zh) 2023-05-26

Family

ID=86413062

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310184991.2A Pending CN116166390A (zh) 2023-02-20 2023-02-20 一种业务处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116166390A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149798A (zh) * 2023-11-01 2023-12-01 建信金融科技有限责任公司 业务变更处理方法、装置、设备、介质及程序产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149798A (zh) * 2023-11-01 2023-12-01 建信金融科技有限责任公司 业务变更处理方法、装置、设备、介质及程序产品
CN117149798B (zh) * 2023-11-01 2024-02-02 建信金融科技有限责任公司 业务变更处理方法、装置、设备、介质及程序产品

Similar Documents

Publication Publication Date Title
US11388273B2 (en) Achieving atomicity in a chain of microservices
US8843623B2 (en) Methods, apparatuses, and computer program products for automated remote data collection
US9619343B2 (en) Accelerated recovery after a data disaster
US8768884B2 (en) Synchronization of dissimilar databases
US7970737B2 (en) Recovery administration of global transaction participants
CN114925084B (zh) 分布式事务处理方法、系统、设备及可读存储介质
US20150309884A1 (en) Recovery of a transaction after xa end
CN116166390A (zh) 一种业务处理方法、装置、电子设备和存储介质
CN114090113B (zh) 数据源处理插件动态加载的方法、装置、设备及存储介质
CN116701053B (zh) 生产环境数据库的数据备份恢复方法、装置、设备及介质
CN112882883A (zh) 停机测试方法和装置、电子设备和计算机可读存储介质
US9218386B2 (en) Dual locking mechanism for a domain
US10922190B1 (en) Updating database records while maintaining accessible temporal history
CN116302561A (zh) 用于应用实例的状态控制方法、装置、设备及存储介质
CN116503005A (zh) 流程动态修改方法、装置、系统及存储介质
CN115098469A (zh) 数据库迁移方法及装置、电子设备和可读存储介质
CN112506781B (zh) 测试监控方法、装置、电子设备、存储介质及程序产品
CN114327794A (zh) 事务管理方法、装置、设备、介质和程序产品
CN113781154A (zh) 一种信息回滚方法、系统、电子设备及存储介质
CN113778631A (zh) 分布式事务补偿方法、装置、电子设备及可读存储介质
CN115484149B (zh) 网络切换方法、网络切换装置、电子设备及存储介质
US20240029001A1 (en) Multi-Computer Tool for Tracking and Analysis of BOT Performance
CN117235043A (zh) 数据库迁移方法、装置、电子设备及介质
CN116560763A (zh) 业务处理方法、装置、设备及存储介质
CN116467209A (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