CN116166388A - 一种长事务的异步处理方法、系统及电子设备 - Google Patents
一种长事务的异步处理方法、系统及电子设备 Download PDFInfo
- Publication number
- CN116166388A CN116166388A CN202211677707.7A CN202211677707A CN116166388A CN 116166388 A CN116166388 A CN 116166388A CN 202211677707 A CN202211677707 A CN 202211677707A CN 116166388 A CN116166388 A CN 116166388A
- Authority
- CN
- China
- Prior art keywords
- message
- transaction
- long
- data
- transactions
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种长事务的异步处理方法、系统及电子设备,所述方法包括:将长事务拆分为多个分事务,并将所述长事务和所述分事务的对应关系列表保存在配置文件中;接收所述长事务的发起信息,将所述发起信息发送到消息中间件,通过所述消息中间件根据所述长事务的发起信息生成消息数据;读取所述配置文件,获取所述对应关系列表;根据所述消息数据和所述对应关系列表,获取对应的事务操作,对业务数据进行逻辑处理。通过将长事务拆分成多个事务,从而减少长事务的处理时间和资源占用的时间。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种长事务的异步处理方法、系统及电子设备。
背景技术
随着企业的发展壮大,企业的信息化建设也越来越完善,原有的业务系统会增加更多的业务功能,导致业务系统中的一个事务会不断的加入多个操作,从而变成长事务,因此需要通过一种异步处理方法对长事务进行管理。目前的长事务管理只能提供简单的事务提交和回滚功能,不能够对长事务进行更灵活的管理。
发明内容
本申请旨在提供一种长事务的异步处理方法、系统及电子设备,通过将长事务拆分成多个事务,从而减少长事务的处理时间和资源占用的时间。
根据本申请的一方面,提出一种长事务的异步处理方法,包括:
将长事务拆分为多个分事务,并将所述长事务和所述分事务的对应关系列表保存在配置文件中;
接收所述长事务的发起信息,将所述发起信息发送到消息中间件,通过所述消息中间件根据所述长事务的发起信息生成消息数据;
读取所述配置文件,获取所述对应关系列表,根据所述消息数据和所述对应关系列表,获取对应的分事务操作,对业务数据进行逻辑处理。
根据一些实施例,所述方法还包括:
配置处理所述长事务的消息中间件类型,所述消息中间件类型包括kafka、ActiveMQ、RocketMQ和RabbitMQ,并保存在所述配置文件中。
根据一些实施例,所述方法还包括:
读取所述配置文件,获取所述消息中间件类型的配置信息,根据所述配置信息将所述发起信息发送到相应的消息中间件。
根据一些实施例,所述方法还包括:
对所述发起信息进行解析并组装成轻量级数据交换格式的数据;
调用所述消息中间件的API接口,将组装后的数据发送给所述消息中间件,由所述消息中间件根据收到的信息生成消息数据。
根据一些实施例,所述方法还包括:
通过所述消息中间件把所述消息数据放入消息队列中以等待消费,并保存到文件系统。
根据一些实施例,所述方法还包括:
所述根据所述消息数据和所述对应关系列表,获取对应的分事务操作,对业务数据进行逻辑处理,包括:
将所述消息队列中的消息进行解析,并在所述对应关系列表中进行轮询比对,得到对应的事务操作编号,将所述事务操作编号持久化,并设置所述消息为未消费状态。
根据一些实施例,所述方法还包括:
所述根据所述消息数据和所述对应关系列表,获取对应的事务操作,对业务数据进行逻辑处理,还包括:
根据获得的所述事务操作编号,调用对应的事务操作的API接口,通知对应的所述事务操作对业务数据进行逻辑处理,并更新所述消息为已消费状态。
根据本申请的另一方面,提供一种长事务的异步处理系统,包括:
事务拆分模块,用于将长事务拆分为多个分事务,并将所述长事务和所述分事务的对应关系列表保存在配置文件中;
消息生成模块,用于接收所述长事务的发起信息,将所述发起信息发送到消息中间件,通过所述消息中间件根据所述长事务的发起信息生成消息数据;
消息处理模块,用于读取所述配置文件,获取所述对应关系列表,根据所述消息数据和所述对应关系列表,获取对应的分事务操作,对业务数据进行逻辑处理。
根据一些实施例,所述系统还包括:
消息中间件配置模块,用于配置处理所述长事务的消息中间件类型,所述消息中间件类型包括kafka、ActiveMQ、RocketMQ和RabbitMQ,并保存在所述配置文件中。
根据本申请的另一方面,提供一种电子设备,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中任一项所述的方法。
根据本申请的另一方面,提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述方法中任一项所述的方法。
根据本申请示例实施例,通过一种长事务的异步处理方法,可以灵活的管理长事务,通过配置的方式实现选择不同的消息中间件来处理消息,将长事务拆分成多个正常的事务,解决长事务处理时间长,占用数据库资源时间长的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据本申请示例实施例的长事务的异步处理方法流程图。
图2示出根据本申请示例实施例的长事务的异步处理方法示意图。
图3示出根据本申请示例实施例的消息中间件配置流程示意图。
图4示出根据本申请示例实施例的消息生成流程示意图。
图5示出根据本申请示例实施例的消息处理流程示意图。
图6示出根据本申请示例实施例的事务处理流程示意图。
图7示出根据本申请示例实施例的长事务的异步处理系统的框图。
图8示出根据一示例性实施例的一种电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
事务是计算机领域中必不可少的一种技术,一个事务可以是一条数据库操作语句组成,也可以是一组数据库操作语句或者整个程序组成。事务有以下4种特性:
原子性,一个事务是一个不可分割的工作单位,事务中包括的所有操作要么都做,要么都不做。
一致性,事务必须是使数据库从一个一致性状态变到另一个一致性状态,一致性与原子性是密切相关的。
隔离性,一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性,指一个事务一旦提交,它对数据库中数据的改变是永久性的。接下来的其他操作或故障不应该对其有任何影响。
因为事务原子性和一致性的特性,如果在原有的一个事务中不断的加入新的业务操作,每一个操作都需要等待上一个操作完成以后才能进行,这样就会导致整个事务的处理时间变长,形成长事务。
又因为事务的隔离性特性,长事务会长时间占用数据库资源,只有等长事务提交完成后,才能释放相应的资源,在长事务处理期间,其他事务需要访问该资源就需要进行等待。
目前的长事务管理只能提供简单的事务提交和回滚功能,不能够对长事务进行更灵活的管理,如果业务系统中长事务过多,最终就会导致业务系统响应越来越慢,整个系统瘫痪。
针对现有技术的以上缺点,本发明的长事务异步处理方法可以根据业务系统的需要,动态的配置长事务的消息中间件类型,并拆分长事务中的操作,使长事务变成多个正常的事务,达到异步处理的目的,从而减少长事务的处理时间和资源占用的时间。
本发明涉及到的术语如下。
事务:是指访问并可能更新数据库中各种数据项的一个程序执行单元。
长事务:业务系统中运行时间比较长,长时间未提交的事务。
异步处理:与同步处理相对,异步处理不用阻塞当前任务来等待处理完成,而是允许后续操作,直至其它任务处理完成。
中间件:介于应用系统和系统软件之间的一类软件。
供应链:供应链系统缩略语。
ERP:财务系统缩略语。
接口:两个独立的业务系统进行信息交换的共享边界。
以下结合附图对本申请的示例实施例进行说明。
图1示出根据本申请示例实施例的长事务的异步处理方法流程图。
参见图1,在S101,将长事务拆分为多个分事务,并将所述长事务和所述分事务的对应关系列表保存在配置文件中。
根据一些实施例,从长事务里拆分出来多个分事务操作,每个分事务会成为单独的普通事务,以下说明中普通事务即指分事务。
以供应链物资调拨事务来举例说明,物资调拨事务,可拆分为对应的4个普通事务,包括:物资库存导入、更新物资调拨单据的状态、更新调出仓库物资的库存数据和更新调入仓库物资的库存数据。将物资调拨事务和以上4个普通事务的对应关系列表保存在配置文件中。根据读取这个关系列表就能实现在物资调拨业务的时候异步执行4个普通事务。
根据一些实施例,可配置处理长事务的消息中间件类型,消息中间件类型包括kafka、ActiveMQ、RocketMQ和RabbitMQ,并保存在配置文件中。
读取配置文件,获取消息中间件类型的配置信息,根据配置信息将发起信息发送到相应的消息中间件。
在S103,接收长事务的发起信息,将发起信息发送到消息中间件,通过消息中间件根据长事务的发起信息生成消息数据。
根据一些实施例,对发起信息进行解析并组装成轻量级数据交换格式的数据;调用消息中间件的API接口,将组装后的数据发送给消息中间件,由消息中间件根据收到的信息生成消息数据。
例如,可读取本地配置文件,获取消息中间件类型,对事务发起的信息进行解析并组装成JSON(JavaScript Object Notation)格式,解析完成后,调用消息中间件的API接口,将JSON格式的数据推送给消息中间件,消息中间件根据收到的信息生成消息数据。
根据一些实施例,还可以通过消息中间件把消息数据放入消息队列中以等待消费,并保存到文件系统。
例如,通过消息中间件生成消息数据,首先对消息数据进行持久化,也就是把数据保存到本地的文件系统中,同时把消息数据放入队列当中,等待消费。
在S105,读取配置文件,获取对应关系列表,根据消息数据和对应关系列表,获取对应的事务操作,对业务数据进行逻辑处理。
根据一些实施例,将消息队列中的消息进行解析,并在对应关系列表中进行轮询比对,得到对应的事务操作编号,将事务操作编号持久化,并设置消息为未消费状态。
根据一些实施例,根据获得的事务操作编号,调用对应的事务操作的API接口,通知对应的事务操作对业务数据进行逻辑处理,并更新消息为已消费状态。
例如,由消息路由模块首先读取本地配置文件,获取事务操作的对应关系列表,将消息队列中的信息解析,并在事务操作对应关系列表中进行轮询比对,得到对应的事务操作编号,将事务编号持久化并设置消息为未消费状态。
再由消息分发模块根据消费路由模块获得的事务操作编号,同时调用相关事务操作的API接口,通知相关事务操作对业务数据进行逻辑处理,并更新消息为已消费状态,整个长事务异步处理完成。
本发明方案可以通过配置文件,灵活管理长事务,通过消息接收、队列、路由、分发功能,实现长事务拆分成多个正常事务,使事务可以异步处理,减少长事务的处理时间,使得数据库资源能够更快的得到释放,避免因长事务引起的事务锁,导致整个业务系统的不可用。
图2示出根据本申请示例实施例的长事务的异步处理方法示意图。
参见图2,为了实现长事务的异步处理方法,可将实现程序分为消息中间件配置模块、消息接收模块、消息队列模块、消息路由模块、消息分发模块。
消息中间件配置模块:用于配置长事务处理方法中的消息中间件类型,即采用哪一种消息中间件来通知拆分出来的事务进行处理操作。可支持4种消息中间件:kafka、ActiveMQ、RocketMQ、RabbitMQ。
消息接收模块:消息接收模块主要功能是接收事务发起的信息,并将信息推送到消息中间件,消息中间件生成消息数据。
消息队列模块:通过消息接收模块后,消息中间件生成消息数据,首先对消息数据进行持久化,也就是把数据保存到本地的文件系统中,同时把消息数据放入队列当中,等待消费。
消息路由模块:用于处理消息与事务操作的关系,找到指定消息所对应的事务操作。
消息路由模块首先读取本地配置文件,获取事务操作的对应关系列表,将消息队列中的信息解析,并在事务操作对应关系列表中进行轮询比对,得到对应的事务操作编号,将事务编号持久化并设置消息为未消费状态。
消息分发模块:根据消费路由模块获得的事务操作编号,同时调用相关事务操作的API接口,通知相关事务操作对业务数据进行逻辑处理,并更新消息为已消费状态,整个长事务异步处理完成。
图3示出根据本申请示例实施例的消息中间件配置流程示意图。
参见图3,消息中间件配置模块可由具有配置管理功能的中间件实现,例如,nacos,它的主要作用是服务注册和配置管理;配置管理功能可以用其它的中间件代替,例如,springcloud config。
根据一些实施例,业务服务启动时,主动访问中间件(例如nacos)的统一配置中心,并读取消息中间件的配置类型数据,业务服务取得配置信息后,将该数据保存到业务服务的本地配置文件中。
根据一些实施例,访问配置中心,还可获取事务操作的对应关系数据,并写入本地配置文件,读取的内容包括事务操作的对应关系。例如,以供应链物资调拨事务为例,物资调拨事务代码:allocation,对应的4个普通事务代码:①erpInterface;②updateBillStatus;③updateOutStock;④updateInStock。根据读取的这个关系列表就能通过程序实现在物资调拨业务的时候异步执行以上4个普通事务。
图4示出根据本申请示例实施例的消息生成流程示意图。
参见图4,业务服务发起事务,首先读取本地配置文件,获取消息中间件类型,对事务发起的信息进行解析并组装成JSON(JavaScript Object Notation)格式,解析完成后,调用消息中间件的API接口,将JSON格式的数据推送给消息中间件,消息中间件根据收到的信息生成消息数据。
图5示出根据本申请示例实施例的消息处理流程示意图。
参见图5,通过消息接收模块后,消息中间件生成消息数据,首先对消息数据进行持久化,也就是把数据保存到本地的文件系统中,同时把消息数据放入队列当中,等待消费。
由消息路由模块处理消息与事务操作的关系,找到指定消息所对应的事务操作。
消息路由模块首先读取本地配置文件,获取事务操作的对应关系列表,将消息队列中的信息解析,并在事务操作对应关系列表中进行轮询比对,得到对应的事务操作编号,将事务编号持久化并设置消息为未消费状态。再由消息分发模块进行消息分发处理。
图6示出根据本申请示例实施例的事务处理流程示意图。
参见图6,由消息分发模块根据消费路由模块获得的事务操作编号,同时调用相关事务操作的API接口,通知相关事务操作对业务数据进行逻辑处理,并更新消息为已消费状态,整个长事务异步处理完成。
其中,相关事务操作是长事务里拆分出来的多个操作,会成为多个单独的普通事务存在,这里的相关事务操作指的就是执行这些普通事务。
以供应链物资调拨为例,在事供应链物资调拨务中,需要有以下4个主要事务操作:
1)调用ERP提供的物资库存导入接口,并等待ERP返回的处理消息;
2)更新物资调拨单据的状态为已完成;
3)更新调出仓库物资的库存数据;
4)更新调入仓库物资的库存数据;
通过长事务异步处理方法,把这4个操作分成4个普通事务,首先在消息中间件配置模块,配置消息中间件为kafka消息中间件。
当发起供应链物资调拨请求时,将请求信息发送给kafka,kafka收到信息后将信息转换为消息,放入消息队列中,当可以处理此消息时,对该消息进行解析,分别通知4个普通事务同时进行操作,4个普通事务完成提交后,整个物资调拨业务完成。
本方案的长事务的异步处理方法,可以灵活的管理长事务,通过配置的方式实现选择不同的消息中间件来处理消息,将长事务拆分成多个正常的事务,解决长事务处理时间长,占用数据库资源时间长的问题。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请提供的上述方法所限定的上述功能的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过对示例实施例的描述,本领域技术人员易于理解,根据本申请实施例的长事务的异步处理方法至少具有以下优点中的一个或多个。
根据示例实施例,通过配置的方式实现选择不同的消息中间件来处理消息,将长事务拆分成多个正常的事务,解决长事务处理时间长,占用数据库资源时间长的问题。
下面描述本申请的装置实施例,其可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,可参照本申请方法实施例。
图7示出根据一示例性实施例的长事务的异步处理装置的框图。
图7所示装置可以执行前述根据本申请实施例的长事务的异步处理的方法。
如图7所示,长事务的异步处理装置可包括:事件拆分模块710、消息生成模块720、消息处理模块730、消息中间件配置模块740。
参见图7并参照前面的描述,事务拆分模块710,用于将长事务拆分为多个分事务,并将所述长事务和所述分事务的对应关系列表保存在配置文件中。
消息生成模块720,用于接收所述长事务的发起信息,将所述发起信息发送到消息中间件,通过所述消息中间件根据所述长事务的发起信息生成消息数据。
消息处理模块730,用于读取所述配置文件,获取所述对应关系列表,根据所述消息数据和所述对应关系列表,获取对应的事务操作,对业务数据进行逻辑处理。
消息中间件配置模块740,用于配置处理所述长事务的消息中间件类型,所述消息中间件类型包括kafka、ActiveMQ、RocketMQ和RabbitMQ,并保存在所述配置文件中。
装置执行与前面提供的方法类似的功能,其他功能可参见前面的描述,此处不再赘述。
图8示出根据一示例性实施例的一种电子设备的框图。
下面参照图8来描述根据本申请的这种实施方式的电子设备200。图8显示的电子设备200仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,存储单元存储有程序代码,程序代码可以被处理单元210执行,使得处理单元210执行本说明书描述的根据本申请各种示例性实施方式的方法。
存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (11)
1.一种长事务的异步处理方法,其特征在于,包括:
将长事务拆分为多个分事务,并将所述长事务和所述分事务的对应关系列表保存在配置文件中;
接收所述长事务的发起信息,将所述发起信息发送到消息中间件,通过所述消息中间件根据所述长事务的发起信息生成消息数据;
读取所述配置文件,获取所述对应关系列表,根据所述消息数据和所述对应关系列表,获取对应的分事务操作,对业务数据进行逻辑处理。
2.根据权利要求1所述的方法,其特征在于,还包括:
配置处理所述长事务的消息中间件类型,所述消息中间件类型包括kafka、ActiveMQ、RocketMQ和RabbitMQ,并保存在所述配置文件中。
3.根据权利要求2所述的方法,其特征在于,还包括:
读取所述配置文件,获取所述消息中间件类型的配置信息,根据所述配置信息将所述发起信息发送到相应的消息中间件。
4.根据权利要求3所述的方法,其特征在于,还包括:
对所述发起信息进行解析并组装成轻量级数据交换格式的数据;
调用所述消息中间件的API接口,将组装后的数据发送给所述消息中间件,由所述消息中间件根据收到的信息生成消息数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
通过所述消息中间件把所述消息数据放入消息队列中以等待消费,并保存到文件系统。
6.根据权利要求5所述的方法,其特征在于,所述根据所述消息数据和所述对应关系列表,获取对应的事务操作,对业务数据进行逻辑处理,包括:
将所述消息队列中的消息进行解析,并在所述对应关系列表中进行轮询比对,得到对应的事务操作编号,将所述事务操作编号持久化,并设置所述消息为未消费状态。
7.根据权利要求6所述的方法,其特征在于,所述根据所述消息数据和所述对应关系列表,获取对应的事务操作,对业务数据进行逻辑处理,还包括:
根据获得的所述事务操作编号,调用对应的事务操作的API接口,通知对应的所述事务操作对业务数据进行逻辑处理,并更新所述消息为已消费状态。
8.一种长事务的异步处理系统,其特征在于,包括:
事务拆分模块,用于将长事务拆分为多个分事务,并将所述长事务和所述分事务的对应关系列表保存在配置文件中;
消息生成模块,用于接收所述长事务的发起信息,将所述发起信息发送到消息中间件,通过所述消息中间件根据所述长事务的发起信息生成消息数据;
消息处理模块,用于读取所述配置文件,获取所述对应关系列表,根据所述消息数据和所述对应关系列表,获取对应的分事务操作,对业务数据进行逻辑处理。
9.根据权利要求8所述的系统,其特征在于,还包括:
消息中间件配置模块,用于配置处理所述长事务的消息中间件类型,所述消息中间件类型包括kafka、ActiveMQ、RocketMQ和RabbitMQ,并保存在所述配置文件中。
10.一种电子设备,其特征在于,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7中任一项所述的方法。
11.一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,使得所述处理器执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211677707.7A CN116166388A (zh) | 2022-12-26 | 2022-12-26 | 一种长事务的异步处理方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211677707.7A CN116166388A (zh) | 2022-12-26 | 2022-12-26 | 一种长事务的异步处理方法、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166388A true CN116166388A (zh) | 2023-05-26 |
Family
ID=86421174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211677707.7A Pending CN116166388A (zh) | 2022-12-26 | 2022-12-26 | 一种长事务的异步处理方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166388A (zh) |
-
2022
- 2022-12-26 CN CN202211677707.7A patent/CN116166388A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9361648B2 (en) | Rule authoring for events in a grid environment | |
CN111198751B (zh) | 业务处理方法和装置 | |
US10411974B2 (en) | Cloud computing service catalog | |
CN111399897A (zh) | 基于kubernetes的应用发布方法以及系统 | |
US10379914B2 (en) | System and method for achieving specific behaviors by intercepting file access calls in a mainframe rehosting platform | |
US9858136B2 (en) | Resource manager failure handling in a multi-process transaction environment | |
CN110990081A (zh) | 微服务注册、发现方法及装置、存储介质及电子设备 | |
CN111831461A (zh) | 一种处理业务流程的方法和装置 | |
US8060885B2 (en) | Creating task queries for concrete resources using alias selection fields specifying formal resources and formal relationships | |
US8812578B2 (en) | Establishing future start times for jobs to be executed in a multi-cluster environment | |
CN114968373A (zh) | 指令分派方法、装置、电子设备及计算机可读存储介质 | |
CN109558251B (zh) | 页面结构信息修改的方法及终端 | |
US20080256552A1 (en) | System and method for a cics application using a same program on a local system and a remote system | |
CN113760924A (zh) | 一种分布式事务的处理方法和装置 | |
CN110955719A (zh) | 一种数据存取处理设备、系统和方法 | |
CN113791799A (zh) | 系统升级方法及装置、计算机可读存储介质、电子设备 | |
CN111580733A (zh) | 任务处理方法、装置、计算设备以及介质 | |
CN116051031A (zh) | 项目调度系统、介质及电子设备 | |
CN116166388A (zh) | 一种长事务的异步处理方法、系统及电子设备 | |
CN116107772A (zh) | 多线程的数据处理方法、装置、处理器以及电子设备 | |
CN115829266A (zh) | 跨调度系统的作业协同方法、装置、电子设备和存储介质 | |
CN114237858A (zh) | 一种基于多集群网络的任务调度方法及系统 | |
CN107632893B (zh) | 消息队列处理方法及装置 | |
EP4224384A1 (en) | Method and apparatus for determining reservation information | |
CN111970349B (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 |