业务补偿方法及装置、系统制造方法及图纸

技术编号:20176372 阅读:25 留言:0更新日期:2019-01-23 00:17
本申请公开了一种业务补偿方法及装置、系统。其中,该方法包括:获取业务请求;根据业务请求,确定业务请求所请求的业务;业务中包括第一类任务与第二类任务,其中第一类任务在第一系统中执行,第二类任务在第二系统中执行,并且第二类任务与第一类任务的执行顺序是不同的;对第一类任务与第二类任务的执行状态进行检测,若检测到第一类任务或第二类任务执行异常,则对业务进行补偿。解决了业务执行过程中涉及到的线程较多,模块之间调用关系较复杂的技术问题。

Business Compensation Method, Device and System

This application discloses a business compensation method, device and system. Among them, the method includes: obtaining business requests; determining the business requested by business requests according to business requests; business includes the first type of tasks and the second type of tasks, in which the first type of tasks are executed in the first system, the second type of tasks are executed in the second system, and the execution order of the second type of tasks is different from that of the first type of tasks; for the first type of tasks and the second type of tasks, the execution order is different. The execution status of tasks is detected, and the business is compensated if the execution anomalies of the first or second types of tasks are detected. It solves the technical problems of more threads involved in the process of business execution and more complex calling relationship between modules.

【技术实现步骤摘要】
业务补偿方法及装置、系统
本申请涉及计算机领域,具体而言,涉及一种业务补偿方法及装置、系统。
技术介绍
现有技术中,saga模型在处理多个业务时,需要在多个不同的业务模块中处理对应的业务,多个业务模块之间进行交互,例如:A模块负责业务数据的解析,B模块负责对各个业务进行排序,C模块记载各个任务的执行状态,D模块用于处理业务的数据,C模块调用E模块对执行异常的业务进行补偿,业务执行过程中涉及到的线程较多,模块之间调用关系较复杂。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种业务补偿方法及装置、系统,以至少解决业务执行过程中涉及到的线程较多,模块之间调用关系较复杂的技术问题。根据本申请实施例的一个方面,提供了一种业务补偿方法,包括:获取业务请求;根据业务请求,确定业务请求所请求的业务;业务中包括第一类任务与第二类任务,其中第一类任务在第一系统中执行,第二类任务在第二系统中执行,并且第二类任务与第一类任务的执行顺序是不同的;对第一类任务与第二类任务的执行状态进行检测,若检测到第一类任务或第二类任务执行异常,则对业务进行补偿。可选地,确定用于响应业务请求的业务之后,方法包括:记录业务的执行状态,第一执行状态至少包括以下之一:开始执行业务,业务执行结束,业务执行中,业务是否执行异常。可选地,对业务进行补偿之前,方法还包括:从冲正轨迹表中获取第一类任务和/或第二类任务的第二执行状态,其中,冲正轨迹表用于记录第一类任务和/或第二类任务的名称,以及第一类任务和/或第二类任务的第二执行状态;依据第二执行状态确定是否对业务进行补偿,其中,在第一类任务或第二类任务的第二执行状态指示异常时,确定对业务进行补偿。可选地,在第一类任务或第二类任务的第二执行状态指示异常时,确定对业务进行补偿包括:确定业务的最大冲正次数与已冲正次数;若已冲正次数小于最大冲正次数,则确定对业务进行补偿。可选地,对业务进行补偿之后,方法还包括:按照预设的时间周期,定时对业务的补偿状态进行检测,其中,补偿状态包括:补偿成功和与补偿失败;在检测到补偿状态为补偿失败时,重新对业务进行补偿。可选地,对业务进行补偿,包括:确定业务中的任务的补偿顺序,其中,任务为第一类任务的子任务或第二类任务的子任务;按照补偿顺序对业务中的任务进行补偿。根据本申请实施例的另一个方面,提供了一种业务补偿系统,包括:第一系统,用于获取业务请求;根据业务请求,确定业务请求所请求的业务;业务中包括第一类任务与第二类任务,其中第一类任务在第一系统中执行,第二类任务在第二系统中执行,并且第二类任务与第一类任务的执行顺序是不同的;对第一类任务与第二类任务的执行状态进行检测,若检测到第一类任务或第二类任务执行异常,则对业务进行补偿。第二系统,用于执行第一类任务;第三系统,用于执行第二类任务。根据本申请实施例的另一个方面,提供了一种业务补偿装置,包括:采集装置,用于获取业务请求;确定装置,用于根据业务请求,确定业务请求所请求的业务;业务中包括第一类任务与第二类任务,其中第一类任务在第一系统中执行,第二类任务在第二系统中执行,并且第二类任务与第一类任务的执行顺序是不同的;处理装置,用于对第一类任务与第二类任务的执行状态进行检测;用于若检测到第一类任务或第二类任务执行异常,则对业务进行补偿。根据本申请实施例的再一个方面,提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以上的业务补偿方法。根据本申请实施例的再一个方面,提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行以上的业务补偿方法。在本申请实施例中,通过获取业务请求;根据业务请求,确定业务请求所请求的业务;业务中包括第一类任务与第二类任务,其中第一类任务在第一系统中执行,第二类任务在第二系统中执行,并且第二类任务与第一类任务的执行顺序是不同的;对第一类任务与第二类任务的执行状态进行检测,若检测到第一类任务或第二类任务执行异常,则对业务进行补偿。从而实现了对与业务请求对应的业务的实时监测,并且根据检测结果确定是否对业务进行补偿,在执行业务时,涉及到的进程较少,涉及到的用于执行业务的模块较少的技术效果。进而解决了业务执行过程中涉及到的线程较多,模块之间调用关系较复杂的技术问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的一种业务补偿方法的流程示意图;图2是根据本申请实施例的一种业务补偿系统的结构示意图;图3是根据本申请实施例的另一种业务补偿装置的结构示意图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在描述业务的补偿模式之前,先定义两个概念:业务异常:业务逻辑产生错误的情况,比如账户余额不足、商品库存不足等。技术异常:非业务逻辑产生的异常,如网络连接异常、网络超时等。补偿模式使用一个额外的协调服务来协调各个需要保证一致性的服务,协调服务按顺序调用各个服务,如果某个服务调用异常(包括业务异常和技术异常)就取消之前所有已经调用成功的服务。当每个子事务T1,T2,…,Tn都有对应的补偿定义C1,C2,…,Cn-1,那么系统可以保证。子事务序列T1,T2,…,Tn得以完成(最佳情况)。或者序列T1,T2,…,Tj,Cj,…,C2,C1,0<j<n,得以完成。换句话说,通过上述定义的事务/补偿,保证满足以下业务规则:所有的业务都被执行成功,如果任何一个失败,都会被取消,如果最后一步失败,所有业务也将被取消。冲正是为系统认为可能交易失败时采取的补救手法。即一笔交易在终端已经置为成功标志。但是发送到主机的账务交易包没有得到响应,即终端交易超时,所以不确定该笔交易是否在主机端也成功完成,为了确保用户的利益,终端重新向主机发送请求,请求取消该笔交易的流水,如果主机端已经交易成功,则回滚交易,否则不处理,然后将处理结果返回给终端。如图1所示,图1是根据本申请实施例的一种业务补偿方法的流程示意图,该方法至少包括步骤S102-S106:步骤S102,获取业务请求。在一个可选的实施例中,用户办理业务时,涉及到的系统有两个,银行系统与第三方系统,银行系统包括本文档来自技高网
...

【技术保护点】
1.一种业务补偿方法,其特征在于,所述方法包括:获取业务请求;根据所述业务请求,确定所述业务请求所请求的业务;所述业务中包括第一类任务与第二类任务,其中所述第一类任务在第一系统中执行,所述第二类任务在第二系统中执行,并且第二类任务与所述第一类任务的执行顺序是不同的;对第一类任务与第二类任务的执行状态进行检测,若检测到所述第一类任务或第二类任务执行异常,则对所述业务进行补偿。

【技术特征摘要】
1.一种业务补偿方法,其特征在于,所述方法包括:获取业务请求;根据所述业务请求,确定所述业务请求所请求的业务;所述业务中包括第一类任务与第二类任务,其中所述第一类任务在第一系统中执行,所述第二类任务在第二系统中执行,并且第二类任务与所述第一类任务的执行顺序是不同的;对第一类任务与第二类任务的执行状态进行检测,若检测到所述第一类任务或第二类任务执行异常,则对所述业务进行补偿。2.根据权利要求1所述的方法,其特征在于,确定用于响应所述业务请求的业务之后,所述方法包括:记录所述业务的执行状态,第一执行状态至少包括以下之一:开始执行业务,业务执行结束,业务执行中,业务是否执行异常。3.根据权利要求2所述的方法,其特征在于,对所述业务进行补偿之前,所述方法还包括:从冲正轨迹表中获取第一类任务和/或第二类任务的第二执行状态,其中,冲正轨迹表用于记录第一类任务和/或第二类任务的名称,以及第一类任务和/或第二类任务的第二执行状态;依据所述第二执行状态确定是否对所述业务进行补偿,其中,在第一类任务或第二类任务的第二执行状态指示异常时,确定对所述业务进行补偿。4.根据权利要求1所述的方法,其特征在于,在第一类任务或第二类任务的第二执行状态指示异常时,确定对所述业务进行补偿包括:确定所述业务的最大冲正次数与已冲正次数;若所述已冲正次数小于所述最大冲正次数,则确定对所述业务进行补偿。5.根据权利要求1所述的方法,其特征在于,对所述业务进行补偿之后,所述方法还包括:按照预设的时间周期,定时对所述业务的补偿状态进行检测,其中,所述补偿状态包括:补偿成功和与补偿失败;在检测到所述补偿...

【专利技术属性】
技术研发人员:张兰英潘华朱礼华郝巍康荣兴马韬
申请(专利权)人:中国邮政储蓄银行股份有限公司
类型:发明
国别省市:北京,11

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

1