CN111580938B - 一种工作单元的事务处理方法、装置、设备及介质 - Google Patents
一种工作单元的事务处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111580938B CN111580938B CN202010229688.6A CN202010229688A CN111580938B CN 111580938 B CN111580938 B CN 111580938B CN 202010229688 A CN202010229688 A CN 202010229688A CN 111580938 B CN111580938 B CN 111580938B
- Authority
- CN
- China
- Prior art keywords
- working unit
- transaction
- database
- unit
- context
- 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.)
- Active
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
-
- 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/461—Saving or restoring of program or task context
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
技术领域
本申请涉及计算机技术领域,尤其涉及一种工作单元的事务处理方法、装置、设备及介质。
背景技术
对于一些大型软件来说,其复杂的数据结构和数据关联性,使得业务系统具有大量的业务类型,加之复杂的业务关系,导致后台的一次业务请求可能引发一系列的事务操作。
在现有技术中,工作单元的事务处理存在不稳定性,当业务请求发生错误时,可能会给整个系统带来很大的影响。
发明内容
有鉴于此,本申请实施例提供了一种工作单元的事务处理方法、装置、设备及介质,用于解决现有技术中工作单元的事务处理存在不稳定性的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种工作单元的事务处理方法,所述方法包括:
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
进一步的,所述根据预设方式构建工作单元对应的工作单元上下文,具体包括:
根据业务数据的类型在应用上下文中确定出所述工作单元对应的数据库的标识,根据所述工作单元对应的数据库标识与预先写入的标签构建对应的工作单元上下文,其中,所述工作单元为所述应用的一部分,所述应用上下文包括所述应用运行所需的参数。
进一步的,所述开启事务之前,所述方法还包括:
根据所述业务数据的类型在工作单元中写入对应的切面程序;
根据预设要求在对应的切面程序中写入标签,根据所述标签开启事务,其中,所述标签对应事务启动的参数。
进一步的,所述事务启动的参数包括事务类型、事务预设等级以及事务超时时间中的一种或多种,其中,环境事务类型包括分布式事务与数据库事务。
进一步的,在确定出不存在与所述业务数据的类型对应的数据库连接时,所述方法还包括:
根据所述工作单元上下文建立所述业务数据的类型对应的数据库连接。
进一步的,所述环境事务类型为分布式事务,所述工作单元包括第一工作单元与第二工作单元时,所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,对工作单元的事务进行处理,具体包括:
所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,判断出所述第一工作单元与所述第二工作单元皆完成对应的事务,向所述第一工作单元与所述第二工作单元发出操作成功的指令,以便所述第一工作单元与所述第二工作单元根据所述操作成功的指令执行事务提交的操作。
进一步的,所述环境事务类型为分布式事务,所述工作单元包括第一工作单元与第二工作单元时,所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,对工作单元的事务进行处理,具体包括:
所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,判断出所述第一工作单元和/或所述第二工作单元未完成对应事务,向所述第一工作单元与所述第二工作单元发出操作失败的指令,以便所述第一工作单元与所述第二工作单元根据所述操作失败的指令执行事务回滚的操作。
本申请实施例还提供一种工作单元的事务处理装置,所述装置包括:
构建单元,用于开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
确定单元,用于在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集单元,用于采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
本申请实施例还提供一种工作单元的事务处理设备,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
本申请实施例还提供一种工作单元的事务处理介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本说明书实施例通过将采集的工作单元对应数据库的修改情况发送至协调器,以便协调器对业务数据进行事务处理,进而提高对业务数据进行事务处理的稳定性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例一提供的一种工作单元的事务处理方法的流程示意图;
图2为本说明书实施例二提供的一种工作单元的事务处理方法的流程示意图;
图3为本说明书实施例二提供的分布式事务的示意图;
图4为本说明书实施例三提供的工作单元的事务处理装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书实施例一提供的一种工作单元的事务处理方法的流程示意图,本说明书实施例可由工作单元执行下述步骤,具体如下:
步骤S101,开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数。
步骤S102,在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库。
步骤S103,采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对所述业务数据进行事务处理。
本说明书实施例通过将采集的工作单元对应数据库的修改情况发送至协调器,以便协调器对业务数据进行事务处理,进而提高对业务数据进行事务处理的稳定性。
与实施例一对应的是,图2为本说明书实施例二提供的一种工作单元的事务处理方法的流程示意图,本说明书实施例可由工作单元执行下述步骤,具体如下:
步骤S201,根据所述业务数据的类型在工作单元中写入对应的切面程序。
在本说明书实施例的步骤S201中,切面程序是将众多方法中的所有共有代码全部抽取出来,放置到某个地方集中管理,然后在具体运行时,再由容器动态织入这些共有代码,比如,日志切面程序、权限切面程序等。一个完整的业务功能称为一个工作单元。
需要说明的是,在写入切面程序后,可以通过aop(Aspect OrientedProgramming)组件实现切面程序的识别,切面程序识别的对象可以为Reposity接口方法。
步骤S202,根据预设要求在对应的切面程序中写入标签,其中,所述标签对应事务启动的参数。
在本说明书实施例的步骤S202中,所述事务启动的参数包括事务类型、事务预设等级以及事务超时时间中的一种或多种,其中,环境事务类型包括分布式事务与数据库事务,比如,写入的标签1表示分布式事务、事务等级二、事务超时时间为30秒。
步骤S203,根据标签开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数。
在本说明实施例的步骤S203中,根据步骤S202写入的标签开启事务,其中,事务为工作单元需要执行的任务。根据预设方式构建工作单元对应的工作单元上下文,具体包括:
根据业务数据的类型在应用上下文中确定出所述工作单元对应的数据库的标识,根据所述工作单元对应的数据库标识与预先写入的标签构建对应的工作单元上下文,其中,工作单元为应用的一部分,所述应用上下文包括所述应用运行所需的参数。
步骤S204,在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库。
在本说明书实施例的步骤S204中,数据库连接存储于数据库连接池,通过工作单元中数据库连接器管理数据库连接。需要保证当前工作单元范围内同类型的业务数据应该使用同一个数据库连接与数据库交互,以提高数据库连接资源的复用,即提高运行效率同时有效节约资源。其中,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
进一步的,在本说明书实施例的步骤S204中,在确定出不存在与所述业务数据的类型对应的数据库连接时,所述方法还包括:
根据所述工作单元上下文建立所述业务数据的类型对应的数据库连接。
步骤S205,采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对所述业务数据进行事务处理。
在本说明书实施例的步骤S205中,工作单元对应数据库的修改情况可以包括业务变更信息和执行过的SQL语句。
当环境事务类型为分布式事务,所述工作单元包括第一工作单元与第二工作单元时,所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,对工作单元的事务进行处理,具体包括:
所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,判断出所述第一工作单元与所述第二工作单元皆完成对应的事务,向所述第一工作单元与所述第二工作单元发出操作成功的指令,以便所述第一工作单元与所述第二工作单元根据所述操作成功的指令执行事务提交的操作。
进一步的,当环境事务类型为分布式事务,所述工作单元包括第一工作单元与第二工作单元时,所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,对工作单元的事务进行处理,具体包括:
所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,判断出所述第一工作单元和/或所述第二工作单元未完成对应事务,向所述第一工作单元与所述第二工作单元发出操作失败的指令,以便所述第一工作单元与所述第二工作单元根据所述操作失败的指令执行事务回滚的操作。
需要说明的是,协调器负责协调分布式事务中工作单元的工作一致。协调器作为分布式事务的核心组件,负责工作单元的管理工作(包括事务的提交和回滚)。每一个分布式事务中都会有一个单例的事务协调器负责本进程中工作单元中事务的管理工作。参见图3,在分布式事务的尝试阶段(tring阶段),第一工作单元(表示工作单元的发起方,也可以称为根工作单元)所在进程中的工作单元协调器会负责创建第一工作单元,同时会将创建的工作单元保存在ThreadLocal类型的队列中,处于分支事务参与者中的工作单元协调器(与第一工作单元运行在不同进程)会直接从工作单元上下文中传播一个新的第二工作单元(也可称为分支工作单元),并将工作单元加入ThreadLocal队列中。在第一工作单元端,尝试阶段结束后,协调器会根据尝试阶段是否有异常分别自动调用提交(commit)和回滚(rollback)方法,以commit为例,第一工作单元的commit方法会遍历所有的事务参与者的工作单元协调器中的commit方法,这里的参与者一共有两种,分别为根工作单元参与者和分支工作单元参与者,这里的所谓的“根”和“分支”都只是逻辑上角色的区分,表示主动发起和被动参与的区别,它们在代码层面完全是共用一套逻辑的,比如,一个分支工作单元同样可以发起根工作单元,这样就是典型的嵌套型事务了。但是,整个工作单元的提交和回滚一定是由最顶层工作单元协调器发起的,其他的分支事务(包括多层嵌套事务)都是在最顶层根工作单元协调器的协调下完成自身的提交和回滚。其中,分布式事务可以为TCC分布式事务。
本说明书实施例通过将采集的工作单元对应数据库的修改情况发送至协调器,以便协调器对业务数据进行事务处理,进而提高对业务数据进行事务处理的稳定性。
与实施例二对应的是,图4为本说明书实施例三提供的工作单元的事务处理装置的结构示意图,包括构建单元1、确定单元2以及采集单元3。
构建单元1用于开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数。
确定单元2用于在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库。
采集单元3用于采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
本申请实施例还提供一种工作单元的事务处理设备,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
本申请实施例还提供一种工作单元的事务处理介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
本说明书实施例通过将采集的工作单元对应数据库的修改情况发送至协调器,以便协调器对业务数据进行事务处理,进而提高对业务数据进行事务处理的稳定性。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种工作单元的事务处理方法,其特征在于,所述方法包括:
根据业务数据的类型在工作单元中写入对应的切面程序;
根据预设要求在对应的切面程序中写入标签,根据所述标签开启事务,其中,所述标签对应事务启动的参数;
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
根据业务数据的类型在应用上下文中确定出所述工作单元对应的数据库的标识,根据所述工作单元对应的数据库标识与预先写入的标签构建对应的工作单元上下文,其中,所述工作单元为所述应用的一部分,所述应用上下文包括所述应用运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
2.根据权利要求1所述的工作单元的事务处理方法,其特征在于,所述事务启动的参数包括事务类型、事务预设等级以及事务超时时间中的一种或多种,其中,环境事务类型包括分布式事务与数据库事务。
3.根据权利要求1所述的工作单元的事务处理方法,其特征在于,在确定出不存在与所述业务数据的类型对应的数据库连接时,所述方法还包括:
根据所述工作单元上下文建立所述业务数据的类型对应的数据库连接。
4.根据权利要求2所述的工作单元的事务处理方法,其特征在于,所述环境事务类型为分布式事务,所述工作单元包括第一工作单元与第二工作单元时,所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,对工作单元的事务进行处理,具体包括:
所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,判断出所述第一工作单元与所述第二工作单元皆完成对应的事务,向所述第一工作单元与所述第二工作单元发出操作成功的指令,以便所述第一工作单元与所述第二工作单元根据所述操作成功的指令执行事务提交的操作。
5.根据权利要求2所述的工作单元的事务处理方法,其特征在于,所述环境事务类型为分布式事务,所述工作单元包括第一工作单元与第二工作单元时,所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,对工作单元的事务进行处理,具体包括:
所述协调器根据所述工作单元对应的工作单元上下文与对应数据库的修改记录,判断出所述第一工作单元和/或所述第二工作单元未完成对应事务,向所述第一工作单元与所述第二工作单元发出操作失败的指令,以便所述第一工作单元与所述第二工作单元根据所述操作失败的指令执行事务回滚的操作。
6.一种工作单元的事务处理装置,其特征在于,所述装置包括:
构建单元,用于根据业务数据的类型在工作单元中写入对应的切面程序;根据预设要求在对应的切面程序中写入标签,根据所述标签开启事务,其中,所述标签对应事务启动的参数;开启事务时,根据预设方式构建工作单元对应的工作单元上下文,根据业务数据的类型在应用上下文中确定出所述工作单元对应的数据库的标识,根据所述工作单元对应的数据库标识与预先写入的标签构建对应的工作单元上下文,其中,所述工作单元为所述应用的一部分,所述应用上下文包括所述应用运行所需的参数,所述工作单元上下文包括所述工作单元运行所需的参数;
确定单元,用于在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集单元,用于采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
7.一种工作单元的事务处理设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
根据业务数据的类型在工作单元中写入对应的切面程序;
根据预设要求在对应的切面程序中写入标签,根据所述标签开启事务,其中,所述标签对应事务启动的参数;
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
根据业务数据的类型在应用上下文中确定出所述工作单元对应的数据库的标识,根据所述工作单元对应的数据库标识与预先写入的标签构建对应的工作单元上下文,其中,所述工作单元为所述应用的一部分,所述应用上下文包括所述应用运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
8.一种工作单元的事务处理介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
根据业务数据的类型在工作单元中写入对应的切面程序;
根据预设要求在对应的切面程序中写入标签,根据所述标签开启事务,其中,所述标签对应事务启动的参数;
开启事务时,根据预设方式构建工作单元对应的工作单元上下文,其中,所述工作单元上下文包括所述工作单元运行所需的参数;
根据业务数据的类型在应用上下文中确定出所述工作单元对应的数据库的标识,根据所述工作单元对应的数据库标识与预先写入的标签构建对应的工作单元上下文,其中,所述工作单元为所述应用的一部分,所述应用上下文包括所述应用运行所需的参数;
在确定出存在与业务数据的类型对应的数据库连接时,通过所述数据库连接,将所述工作单元根据所述工作单元上下文产生的业务数据,发送至对应的数据库;
采集所述工作单元对应数据库的修改情况,并将所述工作单元对应数据库的修改情况发送至协调器,以便协调器根据所述工作单元对应数据库的修改情况,对工作单元的事务进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010229688.6A CN111580938B (zh) | 2020-03-27 | 2020-03-27 | 一种工作单元的事务处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010229688.6A CN111580938B (zh) | 2020-03-27 | 2020-03-27 | 一种工作单元的事务处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580938A CN111580938A (zh) | 2020-08-25 |
CN111580938B true CN111580938B (zh) | 2023-04-14 |
Family
ID=72126106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010229688.6A Active CN111580938B (zh) | 2020-03-27 | 2020-03-27 | 一种工作单元的事务处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580938B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778570B (zh) * | 2021-09-10 | 2023-06-06 | 四川新网银行股份有限公司 | 一种基于AOP+ThreadLocal技术的分布式系统断点重试方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102340537B (zh) * | 2011-06-30 | 2014-01-29 | 北京新媒传信科技有限公司 | 一种分布式事务处理方法和装置 |
CN106503027B (zh) * | 2015-09-08 | 2020-02-21 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
CN107436799B (zh) * | 2016-05-26 | 2020-11-03 | 创新先进技术有限公司 | 分布式事务一致性实现方法及装置 |
CN108491252B (zh) * | 2018-03-13 | 2022-03-22 | 万惠投资管理有限公司 | 分布式事务处理方法及分布式系统 |
CN109271438B (zh) * | 2018-10-10 | 2022-01-04 | 上海艾融软件股份有限公司 | 一种数据库访问方法及其系统 |
CN110022367A (zh) * | 2019-04-11 | 2019-07-16 | 软通动力信息技术(集团)有限公司 | 一种事务处理方法和事务处理系统 |
-
2020
- 2020-03-27 CN CN202010229688.6A patent/CN111580938B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111580938A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107450979B (zh) | 一种区块链共识方法及装置 | |
CN107688500B (zh) | 一种分布式任务处理方法、装置、系统及设备 | |
CN110134668B (zh) | 应用于区块链的数据迁移方法、装置和设备 | |
CN110008018A (zh) | 一种批量任务处理方法、装置及设备 | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
CN108628688B (zh) | 一种消息处理方法、装置及设备 | |
CN107577697B (zh) | 一种数据处理方法、装置及设备 | |
CN110597614B (zh) | 一种资源调整方法及装置 | |
CN109725989B (zh) | 一种任务执行的方法及装置 | |
CN109947643B (zh) | 一种基于a/b测试的实验方案的配置方法、装置及设备 | |
CN110134503B (zh) | 一种集群环境下的定时任务处理方法、装置及存储介质 | |
CN115098112B (zh) | 一种金融云应用资源的部署方法、设备及介质 | |
CN109445937B (zh) | 一种组件化编程及无缝执行方法 | |
CN116305298B (zh) | 一种算力资源管理方法、装置、存储介质及电子设备 | |
CN111768303A (zh) | 交易处理方法、装置、设备及系统 | |
CN111580938B (zh) | 一种工作单元的事务处理方法、装置、设备及介质 | |
CN115599764A (zh) | 一种表格数据的迁移方法、设备及介质 | |
CN111459573B (zh) | 一种智能合约执行环境的启动方法以及装置 | |
CN114625410A (zh) | 一种请求消息处理方法、装置及设备 | |
CN114168545A (zh) | 一种数据迁移方法及装置 | |
CN110032433B (zh) | 一种任务执行方法、装置、设备及介质 | |
CN117041980B (zh) | 一种网元管理方法、装置、存储介质及电子设备 | |
CN112328213B (zh) | 一种在线软件开发过程的隔离方法、设备及介质 | |
CN112416312B (zh) | 一种对象获取方法、装置及电子设备、存储介质 | |
CN116302564B (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: 20230328 Address after: 250101 Inspur science and Technology Park, 1036 Inspur Road, hi tech Zone, Jinan City, Shandong Province Applicant after: Inspur Genersoft Co.,Ltd. Address before: 250101 Inspur science and Technology Park, 1036 Inspur Road, hi tech Zone, Jinan City, Shandong Province Applicant before: SHANDONG INSPUR GENESOFT INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |