业务处理方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:25689500 阅读:17 留言:0更新日期:2020-09-18 21:01
本发明专利技术涉及金融科技技术领域,公开了一种业务处理方法、装置、设备及计算机可读存储介质。该业务处理方法包括:在业务处理过程中,每执行业务处理流程中的一个动作时,将当前执行动作压入栈中;在检测到所述业务处理流程中的任一动作执行失败时,从所述栈中依次获取已执行动作;获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销。本发明专利技术能够解决现有的业务流程代码的可读性和可维护性较差的技术问题。

【技术实现步骤摘要】
业务处理方法、装置、设备及计算机可读存储介质
本专利技术涉及金融科技(Fintech)
,尤其涉及一种业务处理方法、装置、设备及计算机可读存储介质。
技术介绍
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。金融场景下的各业务流程中通常包括一系列的动作,以贷款场景下的放款交易为例,可包括以下动作:1)从客户账户扣保证金;2)系统里记录贷款账(用于计算利息、罚息);3)将贷款金额转账到客户账户。在业务处理过程中,若其中任一动作执行失败,都需要撤消前面的所有动作,以保障业务的最终一致性。现有技术中,为实现动作的撤销,通常是在业务代码里写各个动作对应的撤销代码,以判断是否需要撤销及撤销时所采用的撤销逻辑。当业务流程较多时,往往需要写很多对应的撤销代码,这将会形成多重嵌套的“箭头形代码”,从而导致业务流程代码的可读性和可维护性较差。
技术实现思路
本专利技术的主要目的在于提供一种业务处理方法、装置、设备及计算机可读存储介质,旨在解决现有的业务流程代码的可读性和可维护性较差的技术问题。为实现上述目的,本专利技术提供一种业务处理方法,所述业务处理方法包括:在业务处理过程中,每执行业务处理流程中的一个动作时,将当前执行动作压入栈中;在检测到所述业务处理流程中的任一动作执行失败时,从所述栈中依次获取已执行动作;获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销。可选地,所述获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销的步骤之前,还包括:获取所述业务处理流程对应的业务类型,并获取执行失败的动作类型;根据所述业务类型和所述执行失败的动作类型判断当前执行撤销操作还是重试操作;若判定执行撤销操作,则执行步骤:获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销;若判定执行重试操作,则获取所述已执行动作的第一业务处理结果,并在经过第一预设时间时,根据所述第一业务处理结果执行重试操作。可选地,所述获取所述已执行动作的第一业务处理结果,并在经过第一预设时间时,根据所述第一业务处理结果执行重试操作的步骤包括:获取所述已执行动作的第一业务处理结果,对所述第一业务处理结果进行序列化处理,并对序列化后的第一业务处理结果进行反序列化处理,得到第一处理结果;将所述第一处理结果与所述第一业务处理结果进行比对;若所述第一处理结果与所述第一业务处理结果一致,则将所述序列化后的第一业务处理结果存储至预设数据库中;在经过第一预设时间时,从所述预设数据库中获取所述序列化后的第一业务处理结果;对所述序列化后的第一业务处理结果进行反序列化处理,得到所述第一业务处理结果,并根据所述第一业务处理结果执行重试操作。可选地,所述将所述第一处理结果与所述第一业务处理结果进行比对的步骤之后,还包括:若所述第一处理结果与所述第一业务处理结果不一致,则采用预设序列化规则对所述第一业务处理结果进行序列化处理,得到第二处理结果,并将所述第二处理结果存储至预设数据库中;在经过第一预设时间时,从所述预设数据库中获取所述第二处理结果;采用预设反序列化规则对所述第二处理结果进行反序列化处理,得到所述第一业务处理结果,并根据所述第一业务处理结果执行重试操作。可选地,所述业务处理方法还包括:在执行重试操作的过程中,若侦测到重试操作失败的次数达到预设次数时,进行告警提醒。可选地,所述获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销的步骤之后,还包括:在执行所述撤销逻辑的过程中,在检测到所述撤销逻辑中的任一撤销逻辑撤销失败时,获取待重试撤销任务及第二业务处理结果;将所述待重试撤销任务和所述第二业务处理结果存储至预设数据库中,并在经过第二预设时间时,执行所述待重试撤销任务,以基于所述第二业务处理结果继续执行撤销操作。可选地,所述业务处理方法还包括:在接收到动作新增请求时,根据所述动作新增请求获取新增动作信息,所述新增动作信息包括目标业务流程、新增动作执行逻辑、动作执行顺序和新增动作撤销逻辑;根据所述新增动作执行逻辑和所述动作执行顺序将所述新增动作增加至所述目标业务流程中,并将所述新增动作撤销逻辑注册至预设对象中。此外,为实现上述目的,本专利技术还提供一种业务处理装置,所述业务处理装置包括:动作压入模块,用于在业务处理过程中,每执行业务处理流程中的一个动作时,将当前执行动作压入栈中;第一获取模块,用于在检测到所述业务处理流程中的任一动作执行失败时,从所述栈中依次获取已执行动作;动作撤销模块,用于获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销。此外,为实现上述目的,本专利技术还提供一种业务处理设备,所述业务处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的业务处理程序,所述业务处理程序被所述处理器执行时实现如上所述的业务处理方法的步骤。此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有业务处理程序,所述业务处理程序被处理器执行时实现如上所述的业务处理方法的步骤。本专利技术提供一种业务处理方法、装置、设备及计算机可读存储介质,在业务处理过程中,每执行业务处理流程中的一个动作时,将当前执行动作压入栈中,在检测到业务处理流程中的任一动作执行失败时,从栈中依次获取已执行动作,进而获取已执行动作对应的撤销逻辑,并根据已执行动作的执行顺序倒序执行撤销逻辑,以对已执行动作进行撤销。本专利技术中,将saga理论与状态机模型结合,得到状态机框架,由状态机框架在业务处理过程中,记录已执行动作,进而在任一动作执行失败时,从预先注册好的撤销逻辑中获取已执行动作所对应的撤销逻辑,并自动倒序执行撤销逻辑即可实现动作的撤销,通过上述方式,可使得业务代码与撤销逻辑相互隔离,从而可以极大地改善业务代码的可读性及可维护性。附图说明图1为本专利技术实施例方案涉及的硬件运行环境的设备结构示意图;图2为本专利技术业务处理方法第一实施例的流程示意图;图3为本专利技术业务处理方法涉及的业务执行场景的一示意图;图4为本专利技术业务处理方法涉及的新增动作的一场景示意图;图5为本专利技术业务处理装置第一实施例的功能模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参照图1,本文档来自技高网...

【技术保护点】
1.一种业务处理方法,其特征在于,所述业务处理方法包括:/n在业务处理过程中,每执行业务处理流程中的一个动作时,将当前执行动作压入栈中;/n在检测到所述业务处理流程中的任一动作执行失败时,从所述栈中依次获取已执行动作;/n获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销。/n

【技术特征摘要】
1.一种业务处理方法,其特征在于,所述业务处理方法包括:
在业务处理过程中,每执行业务处理流程中的一个动作时,将当前执行动作压入栈中;
在检测到所述业务处理流程中的任一动作执行失败时,从所述栈中依次获取已执行动作;
获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销。


2.如权利要求1所述的业务处理方法,其特征在于,所述获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销的步骤之前,还包括:
获取所述业务处理流程对应的业务类型,并获取执行失败的动作类型;
根据所述业务类型和所述执行失败的动作类型判断当前执行撤销操作还是重试操作;
若判定执行撤销操作,则执行步骤:获取所述已执行动作对应的撤销逻辑,并根据所述已执行动作的执行顺序倒序执行所述撤销逻辑,以对所述已执行动作进行撤销;
若判定执行重试操作,则获取所述已执行动作的第一业务处理结果,并在经过第一预设时间时,根据所述第一业务处理结果执行重试操作。


3.如权利要求2所述的业务处理方法,其特征在于,所述获取所述已执行动作的第一业务处理结果,并在经过第一预设时间时,根据所述第一业务处理结果执行重试操作的步骤包括:
获取所述已执行动作的第一业务处理结果,对所述第一业务处理结果进行序列化处理,并对序列化后的第一业务处理结果进行反序列化处理,得到第一处理结果;
将所述第一处理结果与所述第一业务处理结果进行比对;
若所述第一处理结果与所述第一业务处理结果一致,则将所述序列化后的第一业务处理结果存储至预设数据库中;
在经过第一预设时间时,从所述预设数据库中获取所述序列化后的第一业务处理结果;
对所述序列化后的第一业务处理结果进行反序列化处理,得到所述第一业务处理结果,并根据所述第一业务处理结果执行重试操作。


4.如权利要求3所述的业务处理方法,其特征在于,所述将所述第一处理结果与所述第一业务处理结果进行比对的步骤之后,还包括:
若所述第一处理结果与所述第一业务处理结果不一致,则采用预设序列化规则对所述第一业务处理结果进行序列化处理,得到第二处理结果,并将所述第二处理结果存储至预设数据库中;
在经过第一预设时间时,从所述预设数据库中获取所述第二处理结果...

【专利技术属性】
技术研发人员:廖有志江旻杨杨吴磊
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东;44

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

1