CN111369350A - 冲正交易处理方法及装置 - Google Patents
冲正交易处理方法及装置 Download PDFInfo
- Publication number
- CN111369350A CN111369350A CN202010247323.6A CN202010247323A CN111369350A CN 111369350 A CN111369350 A CN 111369350A CN 202010247323 A CN202010247323 A CN 202010247323A CN 111369350 A CN111369350 A CN 111369350A
- Authority
- CN
- China
- Prior art keywords
- transaction
- flow
- recorded
- different stages
- corrected
- 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
- 238000004080 punching Methods 0.000 title description 8
- 238000003672 processing method Methods 0.000 title description 7
- 238000012545 processing Methods 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 43
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 22
- 238000012163 sequencing technique Methods 0.000 claims abstract description 7
- 238000012937 correction Methods 0.000 claims description 29
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 238000011010 flushing procedure Methods 0.000 claims description 22
- 238000010586 diagram Methods 0.000 claims description 18
- 230000000977 initiatory effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 12
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 2
- 244000046052 Phaseolus vulgaris Species 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 235000013619 trace mineral Nutrition 0.000 description 1
- 239000011573 trace mineral Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种冲正交易处理方法及装置,其中,该方法包括:获取冲正交易对应正交易进行时不同阶段记录的交易流水;根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理。上述技术方案降低了开发人员对正交易逻辑开发的难度,提高了冲正交易处理的准确性和效率。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种冲正交易处理方法及装置。
背景技术
一般来说,商业银行通过冲正的方式实现业务的回滚。一个账务性交易是允许银行柜员在发现有错账发生的时候,通过冲正将之前完成的账务冲正回去。所以在银行系统中,对于一个账务性交易的设计,冲正的支持是其中的一个必备要素。目前商业银行的系统设计越来越多按照低耦合高内聚的方式去设计自己的架构。基于组件化的方式或者分层次的方式去实现业务系统即SOA或者微服务架构。当系统组件约分散,组件之间的交互势必会越来越多。一旦某个组件的某个交易需要和两个或者更多的外部组件的交易交互的时候,就必然存在了组件间的交易一致性的问题需要解决。
在一些应用组件中,在应用逻辑中会在每一个有可能导致异常的地方添加一套异常冲正的方法,来确保程序执行到达检测点的时候,如果发生了异常,就会做对应的冲正逻辑。由于冲正是针对后端的组件调用所做处理,会通过网络发起HTTP请求,此时后端交易可能仍旧无法使用,所以冲正有可能不能成功。所以在这种情况下,一旦冲正逻辑处理失败的时候,该处理一致性的方法就会失效,从而导致了交易不一致,最后只能用人工处理的方式来解决。另外,采用这种方式,需要应用开发人员写入大量应对不一致的逻辑,这些逻辑又依赖于实际正交易的处理,所以在每个靠后的冲正检查点中必须包含前序所有的冲正逻辑,在代码上会有大量重复冗余的逻辑。由于业务逻辑更新变化比较频繁,在原正交易上的所有逻辑修改都可能导致冲正逻辑的变更,使得程序维护起来纷繁复杂。后端交易的冲正支持的变化也可能导致我们业务逻辑代码的变化,从而使得不同组件的耦合度大大增加。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种冲正交易处理方法,用以降低开发人员对正交易逻辑开发的难度,提高冲正交易处理的准确性和效率,该方法包括:
获取冲正交易对应正交易进行时不同阶段记录的交易流水;
根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;
根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理。
本发明实施例还提供了一种冲正交易处理装置,用以降低开发人员对正交易逻辑开发的难度,提高冲正交易处理的准确性和效率,该装置包括:
获取单元,用于获取冲正交易对应正交易进行时不同阶段记录的交易流水;
确定单元,用于根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;
处理单元,用于根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述冲正交易处理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述冲正交易处理方法的计算机程序。
本发明实施例提供的技术方案通过:获取冲正交易对应正交易进行时不同阶段记录的交易流水;根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理,实现了基于交易流水方式进行冲正交易处理,无需在正交易业务逻辑中加入与关于冲正交易一致性保障相关的代码,降低了开发人员对正交易逻辑开发的难度,提高了处理冲正交易的准确性和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中冲正交易处理方法的流程示意图;
图2是本发明实施例中异常交易时序图;
图3是本发明实施例中交易流水状态图;
图4是本发明又一实施例中冲正交易处理方法的流程示意图
图5是本发明实施例中冲正交易处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本发明实施例之前,首先对本发明实施例涉及的名称进行介绍。
1.正交易表示一种正向的交易逻辑,是为了达到某种业务效果而开发的一类交易。
2.冲正交易是一类和正交易有着逆向逻辑的交易,为了除去正交易的所做的业务效果而开发的一种逆向的交易逻辑。
3.在分布式环境中,一致性是指数据在多个副本之间能够保持一致性。当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。在分布式系统中,如果能够在一个数据项的更新操作执行成功后,所有的用户都可以读取到其最新的值,那么这样的系统就被任务具有强一致性。
4.最终一致性强调系统中所有的数据副本,在经过一段时间的同步之后,最终能够达到一致的状态。这是相对于实时强一致而产生的概念。
发明人发现现有冲正交易处理存在如下技术问题:
1.冲正逻辑代码耦合在交易逻辑里面,使得交易逻辑不清晰。
2.无法解决当一次冲正不成功,冲正逻辑执行到一半,部分后端交易被冲正,而还有待冲正的交易未执行的时候,需要多次冲正的问题。
3.每支交易需要写各自的冲正逻辑,即使这些逻辑在实现方法上是有共性的,由于执行所需要的输入不同,导致无法抽象出公共方法,加大的开发的难度。
由于发明人发现如上技术问题,提出一种基于交易流水的冲正交易处理方案,该方案为基于交易流水的自动冲正模式解决分布式事务最终一致性的方案,具体地,该方案针对组合交易中存在的各种组合场景(如图2所示),使用交易流水加上配置文件的方式,将冲正的逻辑抽象下层到一个公共模块(即本发明实施例提出的冲正交易处理方案),使得冲正逻辑可以从正交易的业务逻辑里剥离出来。业务开发人员只需要关心自身的业务逻辑,对于冲正逻辑只需要通过配置几条冲正模式的配置文件即可。当交易发生不一致的时候,由专门的模块(上述公共模块)实现冲正交易处理,实现了对事中一致性做处理。下面对该冲正交易处理进行详细介绍。
图1是本发明实施例中冲正交易处理方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:获取冲正交易对应正交易进行时不同阶段记录的交易流水;
步骤102:根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;
步骤103:根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理。
下面结合图2至图4,对本发明实施例涉及的各个步骤进行详细介绍如下。
一、首先,介绍在上述步骤101之前,在进行正交易时记录交易流水的步骤。
具体实施时,正交易进行时记录交易流水,交易流水的类型可以包括:交易接入交易流水、本地交易流水、外呼交易流水和异常交易流水。下面对这几种交易流水进行介绍。
1.渠道接入交易流水
渠道接入交易流水用来记录渠道(调用方)接入的时候交易的执行状态、请求返回报文以及一些交易的关键要素,该些关键要素可以包括:全局事件跟踪号(标识)、子交易序号、交易码、交易状态、交易返回码、交易返回描述等。全局事件跟踪号、子交易序号、交易码的作用可以是:可以唯一定位一笔交易;交易状态、交易返回码、交易返回描述的作用可以是:快速获取交易的执行状态。可以通过渠道接入交易流水配置的方式来指定记录交易流水的方式,比如是否记交易流水、请求报文的存储策略、响应报文的存储策略,该些策略可以包括:记录整个报文、只记录报文头、记录报文通用域等,按照应用的需要记录一个最小级的报文要素,以减少数据库存储提升性能。并且在渠道接入冲正配置可以配置渠道接入交易的冲正配置信息,比如是否支持外部冲正、是否支持内部冲正、冲正方式以及重复冲正的时间间隔。
2.外部呼出交易流水
外部呼出交易流水用来记录对外呼出的时候外围组件交易的执行状态、请求返回报文以及一些外呼交易的关键要素,该些关键要素、其作用及相关配置、处理方式请参见上述“1.渠道接入交易流水”部分的描述。
3.异常交易流水
交易发生异常产生了不一致的时候,需要记录一条异常交易流水,用来定义唯一一条交易的记录。异常交易流水记录了全局事件跟踪号(全局事件跟踪号是一笔交易的唯一标识,串联了从发起端到服务处理端整个的交易线)、交易码(交易码就是一个服务的唯一标识,比如存款交易:A0182S501)等唯一标识,已尝试冲正次数、下一次冲正时间等。
4.本地交易流水
本地逻辑用来记录本地逻辑执行的痕迹,特别是在某段和业务数据库表紧密相关的逻辑。可以记录全局事件跟踪号、对应的冲正逻辑的bean(spring框架里的bean的含义,一个java类的别名)以及冲正所需要业务要素信息(业务要素是针对不同的业务逻辑的需要有不同需要,比如账号、金额等)。
二、接着,介绍上述步骤101。
在一个实施例中,获取冲正交易对应正交易进行时不同阶段记录的交易流水,可以包括:
获取正交易进行时不同阶段记录的交易流水;
根据正交易进行时不同阶段记录的交易流水,确定正交易的交易状态;
在根据交易状态确定需要针对所述正交易发起冲正交易时,根据不同阶段记录的交易流水发起冲正交易;
将冲正交易对应正交易的交易状态更新为冲正中。
具体实施时,调用方在调用一支交易的时候,首先会记录交易接入交易流水,在交易流水记录成功之后,会进入本地处理链,其中可以记录本地交易流水。如果程序中间有外围组件交易的需要调用那么先记录外呼交易交易流水,在通过HTTP的方式呼出并等待调用返回,外呼调用可能是一次或者多次。当其中一次调用发生超时或者其他异常的时候,应用逻辑停止。此时,一致性平台(本发明实施例提供的冲正交易处理方案)会根据交易的状态做判断是否应该发生冲正来保障一致性。一旦触发了冲正,平台会去记录一条异常交易流水表,并更新接入交易流水表中交易状态,同时返回调用方交易疑似失败,但存在不一致的异常场景,后端(交易被调用方,即本发明实施例提供方案的使用方)会通过冲正手段来使交易失败,不需要前端(交易调用方)再冲正,提高了冲正交易的效率和准确率。
在一个实施例中,根据正交易进行时不同阶段记录的交易流水,确定正交易的交易状态,可以包括:
根据正交易进行时不同阶段记录的交易流水,确定交易阶段标识;
根据交易阶段标识,以及预先建立的交易流水状态图,确定正交易的交易状态。
具体实施时,交易时序图可以如图2所示。为了能达到在交易过程中可以准确控制交易的过程,发明人设计了一套交易流水状态机(交易流水状态图)表示流水状态在收到不同的交易指令时候的所做的不同动作。如图3交易流水状态机(交易流水状态图)所示。程序中关于是否需要冲正以及能否继续冲正均有改状态控制。状态分为交易状态和冲正状态,比如00,08表示正交易成功,冲正未开始。
具体实施时,如图2所示,一支正交易可以分不同的交易阶段,每个交易阶段所代表的交易状态可以如图3所示,根据正交易时记录的交易流水确定某一交易阶段的标识,例如00,08,那么,将该标识对应在如图3所示的交易流水状态图中匹配,得到该阶段的交易状态,进而根据该交易状态判断是否需要发起冲正交易,进一步提高了冲正交易的处理效率和准确率。
另外,根据上述可知,在一个实施例中,所述不同阶段记录的交易流水可以包括异常交易流水;
获取冲正交易对应正交易进行时不同阶段记录的交易流水,可以包括:
根据异常交易流水,发起冲正交易;
获取冲正交易对应正交易进行时不同阶段记录的交易流水。
具体实施时,根据记录的异常交易流水发起冲正交易,进一步提高了冲正交易的处理效率和准确率。
三、接着,为了方便理解,同时介绍上述步骤102和步骤103。
在一个实施例中,所述冲正模式可以包括正序冲正模式、逆序冲正模式和外部依赖冲正模式的其中之一。
具体实施时,冲正模式是一个应用可以通过配置的方式来决定交易采用何种冲正的方式,具体有一下几种:
1.正序冲正:按照正交易的执行顺序冲正。
2.逆序冲正:按照正交易的执行顺序相反的顺序冲正。
3.外部依赖冲正:查询第二步交易的执行结果,来决定是冲正第一步还是把交易状态置为成功。举一例子:例如一个组合交易A01832101内部调用了A0791S81L和A0182S101,当A0182S101超时了,会先去查询A0182S101是否成功,如果成功则整个交易置为成功,如果失败那么把A0791S81L冲正回去。
在一个实施例中,所述不同阶段记录的交易流水可以包括:本地交易流水和外呼交易流水;
根据全局事件跟踪标识,从不同阶段的交易流水中获取所有符合预设条件的待冲正的交易流水记录,可以包括:
根据全局事件跟踪标识,获取所有符合预设条件的外呼交易流水中待冲正的交易流水记录和/或本地交易流水中待冲正的交易流水记录。
具体实施时,上述获取待冲正的交易流水记录的详细实施方案进一步提高了冲正处理的效率和准确率。
在一个实施例中,所述不同阶段记录的交易流水可以包括:交易接入交易流水;
根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理,可以包括:
根据预设冲正模式,对所有待冲正的交易流水记录进行合并排序处理后,放入待处理列表;
根据交易阶段类型,对待处理列表中的待冲正的交易流水记录循环执行冲正处理,直到完成冲正交易处理;
更新交易接入交易流水对应的交易状态。
具体实施时,上述根据预设冲正模式,对所有待冲正的交易流水记录进行合并排序处理后,针对每一待冲正的交易流水记录进行冲正处理的详细实施方案进一步提高了冲正处理的效率和准确率。
具体实施时,交易阶段类型可以包括:本地交易阶段和外呼交易阶段。
四、接着,进一步保证冲正交易执行的优选步骤。
在一个实施例中,上述冲正交易处理方法还可以包括:在确定冲正交易失败时,根据预设的时间间隔,重新发起冲正交易。
具体实施时,在高频服务器上可以设置一个异步冲正调度定时任务(可以是上述重新发起冲正交易的实施方案),由异步冲正调度进程负责异步冲正发起,冲正发起参数可以动态配置。比如在存款、借记卡交易子系统设置发起频率为1s,对单交易冲正失败的调度会重试,在2个小时之内发起11次,每次重试的时间间隔越来越长。时间间隔如下:30s,120s,240s,240s,480s,480s,960s,960s,1920s,1920s。表示第一次调度在1s以内,第二次30s之后,第三次120s之后等等。定时任务扫描到异常交易流水表有符合要求的记录时候,会进入到异步冲正流程。如果冲正成功,那么更新异常交易流水和接入交易流水表状态。如果冲正失败,则计算下一次发起冲正的时间并更新异常交易流水表,等待下一次调度发起,提高了冲正交易的准确率,进而保证了数据一致性。
另外,关于上文提到的异步冲正高频任务:是一个定时任务,用来扫描异常交易流水。筛选异常交易流水表里已尝试冲正次数小于最大次数并且下一次冲正时间小于当前的记录。通过多线程的方式,调度并发起冲正。
为了便于理解本发明如何实施,下面结合附图4对冲正交易处理方案进行介绍。
本发明实施例发起冲正的逻辑不需要重新经过原正交易的逻辑,通过筛选原正交易记录的交易流水,根据交易流水的痕迹来做到冲正逻辑的选择。如图4所示,冲正处理流程图所示,冲正发起时,会首先将原交易的冲正状态更新为冲正中,并把接入交易流水中该条记录的冲正状态更新为冲正中,去做排序处理。利用全局事件跟踪号去获取所有的符合条件(交易成功需要进行冲正且未冲正)外呼交易流水记录和本地交易流水记录。根据冲正模式,来对获取到的交易流水记录做排序(可以根据需要做记录合并处理)之后放进待处理列表,循环发起外呼或者本地构件调用子流程。如果该笔外呼已经被冲正或者本身属于不需要冲正状态,那么跳过这一笔外呼进入到下一笔。直到待处理列表全部执行完成,之后更新异常交易流水表和接入交易流水表。
举一例子:使用一个组合交易A01832501内部调用了A0791S81L和A0182S501这个例子,冲正交易处理的过程可以包括:
第一步,一次调用A01832501,当调用A0182S501成功之后,A0791S81L未知,通过这个交易状态,此时记录异常交易流水表,根据异常流水表记录触发冲正。
第二步,利用全局事件跟踪号作为查询条件去外部呼出流水表和本地交易流水表里获取记录,获取到两条记录A0791S81L、A0182S501;
第三步,按照调用先后顺序对两条记录进行排序处理。
第四步,按照上面的顺序发起外呼冲正处理。
综上,本发明实施例提供的冲正交易处理方案实现了:
1.冲正基于交易流水:
交易流水包括接入交易流水、外呼交易流水、本地交易流水和异常交易流水。各个不同流水各司其职,分别表示一个交易不同维度上的痕迹记录。当一笔交易发起的时候,平台会在底层根据不同的触发条件,在不同地方记录每一部分的流水记录。冲正逻辑发起不需要重新进入业务处理逻辑当中,根据交易过程中的流水痕迹要素,即可以准确按照顺序完成对外呼或者本地的冲正。
2.冲正模式及判定:
目前支持三种不同的冲正模式,冲正模式的选择是根据业务场景上先借后贷或者系统故障概率高低等各种因素来决定。
3.冲正定时任务调度:
冲正定时任务调度是一种异步发起的方式,不侵入业务逻辑,可以实现漏斗原则,即每次对同一笔流水的冲正时间间隔逐渐拉长。
4.冲正参数动态配置:
冲正过程所需要参数比如时间间隔,冲正模式,最大冲正次数都可以通过配置方式对每支不同交易进行动态配置。对于没有进行个性化配置的交易也可以采用默认的冲正参数配置。
5.不侵入业务:
一致性框架不侵入业务,冲正过程中不需要应用去写关于一致性处理的代码。框架仅仅根据交易结果以及流水记录即可完成不一致判断以及冲正的自动发起。
基于同一发明构思,本发明实施例中还提供了一种冲正交易处理装置,如下面的实施例所述。由于冲正交易处理装置解决问题的原理与冲正交易处理方法相似,因此冲正交易处理装置的实施可以参见冲正交易处理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是本发明实施例中冲正交易处理装置的结构示意图,如图5所示,该装置包括:
获取单元01,用于获取冲正交易对应正交易进行时不同阶段记录的交易流水;
确定单元02,用于根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;
处理单元03,用于根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理。
在一个实施例中,所述冲正模式可以包括正序冲正模式、逆序冲正模式和外部依赖冲正模式的其中之一。
在一个实施例中,所述获取单元具体可以用于:
获取正交易进行时不同阶段记录的交易流水;
根据正交易进行时不同阶段记录的交易流水,确定正交易的交易状态;
在根据交易状态确定需要针对所述正交易发起冲正交易时,根据不同阶段记录的交易流水发起冲正交易;
将冲正交易对应正交易的交易状态更新为冲正中。
在一个实施例中,根据正交易进行时不同阶段记录的交易流水,确定正交易的交易状态,可以包括:
根据正交易进行时不同阶段记录的交易流水,确定交易阶段标识;
根据交易阶段标识,以及预先建立的交易流水状态图,确定正交易的交易状态。
在一个实施例中,所述不同阶段记录的交易流水可以包括:交易接入交易流水、本地交易流水和外呼交易流水;
所述确定单元具体可以用于:根据全局事件跟踪标识,获取所有符合预设条件的外呼交易流水中待冲正的交易流水记录和/或本地交易流水中待冲正的交易流水记录;
所述处理单元具体可以用于:根据预设冲正模式,对所有待冲正的交易流水记录进行合并排序处理后,放入待处理列表;
根据交易阶段类型,对待处理列表中的待冲正的交易流水记录循环执行冲正处理,直到完成冲正交易处理;
更新交易接入交易流水对应的交易状态。
在一个实施例中,所述不同阶段记录的交易流水可以包括异常交易流水;
所述获取单元具体可以用于:
根据异常交易流水,发起冲正交易;
获取冲正交易对应正交易进行时不同阶段记录的交易流水。
在一个实施例中,上述还可以包括:重发起单元,用于在确定冲正交易失败时,根据预设时间间隔,重新发起冲正交易。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述冲正交易处理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述冲正交易处理方法的计算机程序。
与现有技术中应用服务在业务逻辑里编写冲正交易处理进而保证一致性保障代码的方式相比较,本发明实施例提供技术方案达到的有益技术效果是:
1.无业务侵入,不需要在业务逻辑中加入任何与一致性保障相关的代码。
2.支持时间间隔按照漏斗方式的多次重复的冲正,并且能支持幂等性。
3.冲正模式可以个性化配置,可以按照接入和呼出不同的维度配置。
综上,基于交易流水的方式处理冲正交易进而保证数据一致性,可以使得冲正逻辑无需关心应用逻辑版本,即使在应用逻辑有变更之后发起对之前的冲正,也可以严格按照老版本逻辑发起冲正。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种冲正交易处理方法,其特征在于,包括:
获取冲正交易对应正交易进行时不同阶段记录的交易流水;
根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;
根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理。
2.如权利要求1所述的冲正交易处理方法,其特征在于,所述冲正模式包括正序冲正模式、逆序冲正模式和外部依赖冲正模式的其中之一。
3.如权利要求1所述的冲正交易处理方法,其特征在于,获取冲正交易对应正交易进行时不同阶段记录的交易流水,包括:
获取正交易进行时不同阶段记录的交易流水;
根据正交易进行时不同阶段记录的交易流水,确定正交易的交易状态;
在根据交易状态确定需要针对所述正交易发起冲正交易时,根据不同阶段记录的交易流水发起冲正交易;
将冲正交易对应正交易的交易状态更新为冲正中。
4.如权利要求3所述的冲正交易处理方法,其特征在于,根据正交易进行时不同阶段记录的交易流水,确定正交易的交易状态,包括:
根据正交易进行时不同阶段记录的交易流水,确定交易阶段标识;
根据交易阶段标识,以及预先建立的交易流水状态图,确定正交易的交易状态。
5.如权利要求1所述的冲正交易处理方法,其特征在于,所述不同阶段记录的交易流水包括:交易接入交易流水、本地交易流水和外呼交易流水;
根据全局事件跟踪标识,从不同阶段的交易流水中获取所有符合预设条件的待冲正的交易流水记录,包括:
根据全局事件跟踪标识,获取所有符合预设条件的外呼交易流水中待冲正的交易流水记录和/或本地交易流水中待冲正的交易流水记录;
根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理,包括:
根据预设冲正模式,对所有待冲正的交易流水记录进行合并排序处理后,放入待处理列表;
根据交易阶段类型,对待处理列表中的待冲正的交易流水记录循环执行冲正处理,直到完成冲正交易处理;
更新交易接入交易流水对应的交易状态。
6.如权利要求1所述的冲正交易处理方法,其特征在于,所述不同阶段记录的交易流水包括异常交易流水;
获取冲正交易对应正交易进行时不同阶段记录的交易流水,包括:
根据异常交易流水,发起冲正交易;
获取冲正交易对应正交易进行时不同阶段记录的交易流水。
7.如权利要求1所述的冲正交易处理方法,其特征在于,还包括:在确定冲正交易失败时,根据预设时间间隔,重新发起冲正交易。
8.一种冲正交易处理装置,其特征在于,包括:
获取单元,用于获取冲正交易对应正交易进行时不同阶段记录的交易流水;
确定单元,用于根据全局事件跟踪标识,从不同阶段记录的交易流水中获取所有符合预设条件的待冲正的交易流水记录;
处理单元,用于根据预设冲正模式,对所有待冲正的交易流水记录进行排序处理后,针对每一待冲正的交易流水记录进行冲正处理。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247323.6A CN111369350B (zh) | 2020-03-31 | 2020-03-31 | 冲正交易处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010247323.6A CN111369350B (zh) | 2020-03-31 | 2020-03-31 | 冲正交易处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111369350A true CN111369350A (zh) | 2020-07-03 |
CN111369350B CN111369350B (zh) | 2024-08-20 |
Family
ID=71212183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010247323.6A Active CN111369350B (zh) | 2020-03-31 | 2020-03-31 | 冲正交易处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111369350B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613993A (zh) * | 2020-12-26 | 2021-04-06 | 中电金信软件有限公司 | 交易数据处理方法、装置、计算机设备和存储介质 |
CN113486033A (zh) * | 2021-07-02 | 2021-10-08 | 中国建设银行股份有限公司 | 控制事务一致性的方法、装置、设备和计算机可读介质 |
CN113656116A (zh) * | 2021-08-18 | 2021-11-16 | 中国邮政储蓄银行股份有限公司 | 业务流程的处理方法和装置 |
CN113722330A (zh) * | 2021-09-07 | 2021-11-30 | 辽宁振兴银行股份有限公司 | 一种联机交易失败重试的方法及装置 |
CN113724082A (zh) * | 2021-08-30 | 2021-11-30 | 上海浦东发展银行股份有限公司 | 账务处理方法、装置、设备及存储介质 |
CN113744056A (zh) * | 2021-09-07 | 2021-12-03 | 辽宁振兴银行股份有限公司 | 一种联机交易幂等的方法及装置 |
CN115526722A (zh) * | 2022-09-30 | 2022-12-27 | 中电金信软件有限公司 | 一种处理冲正交易的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447045A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种交易流程处理方法及系统 |
CN102567858A (zh) * | 2012-01-19 | 2012-07-11 | 北京神州数码思特奇信息技术股份有限公司 | 统一业务冲正方法 |
CN104732438A (zh) * | 2013-12-20 | 2015-06-24 | 中国银联股份有限公司 | 一种交易冲正方法和交易处理系统 |
CN104794138A (zh) * | 2014-01-22 | 2015-07-22 | 深圳市沃信科技有限公司 | 一种数据库交易结果确认方法、装置及系统 |
US20170103403A1 (en) * | 2015-10-12 | 2017-04-13 | International Business Machines Corporation | Transaction data analysis |
CN107609793A (zh) * | 2017-10-09 | 2018-01-19 | 税友软件集团股份有限公司 | 一种处理生产交易系统异常状态的方法及装置 |
CN109034769A (zh) * | 2018-07-03 | 2018-12-18 | 中国银行股份有限公司 | 交易数据处理方法、装置、存储介质及电子设备 |
-
2020
- 2020-03-31 CN CN202010247323.6A patent/CN111369350B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101447045A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种交易流程处理方法及系统 |
CN102567858A (zh) * | 2012-01-19 | 2012-07-11 | 北京神州数码思特奇信息技术股份有限公司 | 统一业务冲正方法 |
CN104732438A (zh) * | 2013-12-20 | 2015-06-24 | 中国银联股份有限公司 | 一种交易冲正方法和交易处理系统 |
CN104794138A (zh) * | 2014-01-22 | 2015-07-22 | 深圳市沃信科技有限公司 | 一种数据库交易结果确认方法、装置及系统 |
US20170103403A1 (en) * | 2015-10-12 | 2017-04-13 | International Business Machines Corporation | Transaction data analysis |
CN107609793A (zh) * | 2017-10-09 | 2018-01-19 | 税友软件集团股份有限公司 | 一种处理生产交易系统异常状态的方法及装置 |
CN109034769A (zh) * | 2018-07-03 | 2018-12-18 | 中国银行股份有限公司 | 交易数据处理方法、装置、存储介质及电子设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112613993A (zh) * | 2020-12-26 | 2021-04-06 | 中电金信软件有限公司 | 交易数据处理方法、装置、计算机设备和存储介质 |
CN113486033A (zh) * | 2021-07-02 | 2021-10-08 | 中国建设银行股份有限公司 | 控制事务一致性的方法、装置、设备和计算机可读介质 |
CN113656116A (zh) * | 2021-08-18 | 2021-11-16 | 中国邮政储蓄银行股份有限公司 | 业务流程的处理方法和装置 |
CN113724082A (zh) * | 2021-08-30 | 2021-11-30 | 上海浦东发展银行股份有限公司 | 账务处理方法、装置、设备及存储介质 |
CN113724082B (zh) * | 2021-08-30 | 2024-04-30 | 上海浦东发展银行股份有限公司 | 账务处理方法、装置、设备及存储介质 |
CN113722330A (zh) * | 2021-09-07 | 2021-11-30 | 辽宁振兴银行股份有限公司 | 一种联机交易失败重试的方法及装置 |
CN113744056A (zh) * | 2021-09-07 | 2021-12-03 | 辽宁振兴银行股份有限公司 | 一种联机交易幂等的方法及装置 |
CN113722330B (zh) * | 2021-09-07 | 2024-06-07 | 辽宁振兴银行股份有限公司 | 一种联机交易失败重试的方法及装置 |
CN115526722A (zh) * | 2022-09-30 | 2022-12-27 | 中电金信软件有限公司 | 一种处理冲正交易的方法及装置 |
CN115526722B (zh) * | 2022-09-30 | 2023-05-23 | 中电金信软件有限公司 | 一种处理冲正交易的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111369350B (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111369350A (zh) | 冲正交易处理方法及装置 | |
CN111580939B (zh) | 一种分级异步处理事务的方法及装置 | |
CN110276614B (zh) | 分户账的更新方法和装置 | |
CN102203779B (zh) | 更新数据的方法和控制装置 | |
CN113760476B (zh) | 任务依赖处理方法及相关装置 | |
CN113112344B (zh) | 业务处理方法、设备、存储介质及计算机程序产品 | |
WO2006108799A2 (en) | A method, system and computer program for providing atomicity for a unit of work | |
CN110599341A (zh) | 交易调用方法及系统 | |
CN106991606B (zh) | 交易数据处理方法及装置 | |
CN110955469A (zh) | 一种x86平台分布式批量调用联机交易的方法及装置 | |
CN113656116A (zh) | 业务流程的处理方法和装置 | |
CN113641455B (zh) | 报文转换方法及平台 | |
CN110083493A (zh) | 一种嵌入式系统故障自恢复方法、终端设备及存储介质 | |
CN112559496B (zh) | 一种分布式数据库事务原子性实现方法及装置 | |
CN107169767B (zh) | 交易冲正方法和系统 | |
CN114170023A (zh) | 一种资金交易运营平台系统的测试方法及装置 | |
CN111143041B (zh) | 一种数据一致性方法、分布式协调器及中央协调器 | |
CN106856496B (zh) | 数据处理方法及装置 | |
US7171410B1 (en) | Fault tolerant network element | |
CN110795121A (zh) | 虚拟化系统升级方法、装置、设备及计算机可读存储介质 | |
CN115729946A (zh) | 一种处理分布式事务的方法、装置、设备及存储介质 | |
CN114518885A (zh) | 信息收集方法、装置、电子设备及存储介质 | |
CN110221952B (zh) | 业务数据的处理方法及装置、业务数据处理系统 | |
CN113962789A (zh) | 银行对账方法及装置 | |
CN105574020B (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: 20220922 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |