CN108920258A - 一种事务处理方法及应用服务中间件 - Google Patents

一种事务处理方法及应用服务中间件 Download PDF

Info

Publication number
CN108920258A
CN108920258A CN201810672018.4A CN201810672018A CN108920258A CN 108920258 A CN108920258 A CN 108920258A CN 201810672018 A CN201810672018 A CN 201810672018A CN 108920258 A CN108920258 A CN 108920258A
Authority
CN
China
Prior art keywords
affairs
thread
transacted
transaction
storage organization
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
Application number
CN201810672018.4A
Other languages
English (en)
Inventor
廖明耀
贾冀芳
张立新
文建军
史金奇
苑桐
吴佳
苏丹
袁卫国
李垠韬
杨睿
闫磊
高崧
刘超
宋伟
吕冰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing China Power Information Technology Co Ltd
Information and Telecommunication Branch of State Grid Jibei Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Beijing China Power Information Technology Co Ltd
Information and Telecommunication Branch of State Grid Jibei Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, Beijing China Power Information Technology Co Ltd, Information and Telecommunication Branch of State Grid Jibei Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201810672018.4A priority Critical patent/CN108920258A/zh
Publication of CN108920258A publication Critical patent/CN108920258A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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

一种事务处理方法及应用服务中间件
技术领域
本发明属于计算机技术领域,尤其涉及一种事务处理方法及应用服务中间件。
背景技术
事务,是一个程序执行单元,通常由一组SQL语句组成,事务作为一个整体被执行,具有不可分割性。如果执行一个事务花费很长时间才能够执行完毕,就可以称该事务为长事务。
应用服务中间件是位于应用软件与网络、操作系统、数据库之间的基础软件平台,为应用提供名字、事务、安全、消息、数据访问等服务、并为应用提供开发、部署、运行及管理支撑环境,应用能够通过应用服务中间件向具有不同接口的数据库发送事务,并通过应用服务中间件获取事务的处理结果,通过应用服务中间件,应用程序可以工作于多平台或操作系统环境。
现有技术中,应用服务中间件对获取的事务采用同步处理模式,即每次只接收一个事务,并且只有在当前接收的事务被执行完毕并返回执行结果后,才继续接收下一个事务,这种模式使得事务处理效率低下,特别是在处理长事务时,一个长事务的处理过程要花费十几分钟甚至更长时间,导致整个应用系统响应时间延长,严重影响用户的使用感受。
因此,如何提供一种事务处理方法,提高事务处理效率,改善用户使用感受,成为目前急待解决的关键问题之一。
发明内容
有鉴于此,本发明的目的在于提供一种事务处理方法及应用服务中间件,提高事务处理效率,改善用户的使用感受,具体方案如下:
第一方面,本发明提供一种事务处理方法,包括:
获取多个事务;
依次为每一所述事务创建事务处理线程;
调用多个所述事务处理线程,处理各所述事务处理线程对应的事务;
反馈各所述事务的处理结果。
可选的,在所述依次为每一所述事务创建事务处理线程之前,本发明第一方面所述事务处理方法,还包括:
依次将各所述事务存储至预设存储结构中;
所述依次为每一所述事务创建事务处理线程,包括:
从所述预设存储结构中读取一事务;
为读取得到的事务创建事务处理线程。
可选的,所述依次将各所述事务存储至预设存储结构中,包括:
获取一所述事务后,判断预设存储结构是否已满;
若所述预设存储结构已满,则反馈表征所述预设存储结构已满的通知消息;
若所述预设存储结构未满,则将获取的事务存储至所述预设存储结构中。
可选的,所述预设存储结构包括事务队列,所述依次将各所述事务存储至预设存储结构中,包括:
依次将各所述事务存储至所述事务队列中。
可选的,所述调用多个所述事务处理线程,处理各所述事务处理线程对应的事务,包括:
加载预设线程池;
依次将各所述事务处理线程加入所述线程池,处理各所述事务处理线程对应的事务。
可选的,所述线程池包括核心线程池、线程阻塞队列和非核心线程池,所述依次将各所述事务处理线程加入所述线程池,处理各所述事务处理线程对应的事务,包括:
在创建一所述事务处理线程后,若所述核心线程池未满,则将当前事务处理线程加入所述核心线程池执行;
若所述核心线程池已满且所述线程阻塞队列未满,则将当前事务处理线程加入所述线程阻塞队列排队;
若所述线程阻塞队列已满且所述非核心线程池未满,则将当前事务处理线程加入所述非核心线程池执行;
若所述非核心线程池已满,则将当前事务处理线程挂起。
可选的,所述反馈各所述事务的处理结果,包括:
反馈所述核心线程池和/或所述非核心线程池中各事务的处理结果。
第二方面,本发明提供一种应用服务中间件,包括:
获取模块,用于获取多个事务;
创建模块,用于依次为每一所述事务创建事务处理线程;
调用模块,用于调用多个所述事务处理线程,处理各所述事务处理线程对应的事务;
反馈模块,用于反馈各所述事务的处理结果。
可选的,本发明第二方面所述的应用服务中间件,还包括:
存储模块,用于依次将各所述事务存储至预设存储结构中。
基于上述技术方案,本发明提供的事务处理方法,根据用户发起的事务处理请求,获取多个事务,然后为获取的每一事务创建事务处理线程,创建事务处理线程之后,调用创建的多个事务处理线程,处理各事务处理线程对应的事务,最后,将各事务的处理结果反馈至用户,采用本发明提供的事务处理方法,用户在发起一事务处理请求时,不必等待该事务的处理结果,可以直接发起下一事务处理请求,或同时发起多个事务处理请求,本发明采用异步处理机制处理同时处理多个事务,可以有效提高事务处理效率,改善用户的使用感受。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的事务处理方法流程图;
图2是本发明实施例提供的一种事务处理装置的结构框图;
图3是本发明实施例提供的另一种事务处理装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,本发明实施例提供的事务处理方法流程图,该方法可应用于电子设备,该电子设备可选如笔记本电脑、PC(个人计算机)、平板电脑等具有数据处理能力,能够运行不同应用软件的电子设备,显然,该电子设备在某些情况下也可选用网络侧的服务器实现;参照图1,本发明实施例提供的事务处理方法,可以包括:
步骤S100,获取多个事务。
如前所述,事务是一个程序执行单元,通常由一组SQL语句组成。事务具有原子性、一致性、隔离性和持久性,事务作为一个整体被执行,具有不可分割性,事务中的SQL语句要么全被执行,要么全不执行。如果一个事务花费很长时间才能够结束,就是一个长的事务,简称长事务。
对于长事务的界定因不同的运行环境而不同:在Oracle中,运行时间超过6秒的事务就被视为长事务;Informix把占用整个逻辑日志空间在一定比例(长事务深水线比例)以上的事务叫做长事务等等,在此不再一一列举。
运行在应用服务中间件上的业务系统给用户提供服务,用户通过业务系统发起事务处理请求,应用服务中间件从具体的业务系统(比如,运行在应用服务中间件上的数据处理软件)获取待处理的事务,当然,依据具体的处理任务的不同,所获取的事务中可能包含长事务。获取事务的方式可以是依序一个一个的获取,在一定的时间段内,实现对多个事务的获取,当然也可以是同时获取多个事务,任一种获取多个事务的方式,都在本发明保护的范围之内。
步骤S110,依次将各事务存储至预设存储结构中。
在获取多个待处理事务后,可将获取的多个事务暂存至预设的存储结构中,同时,通过设置一定的存取顺序,比如采用队列的先入先出原则或堆栈的先入后出原则等,可以保证存储于存储结构中的事务能够依序被处理,避免出现事务丢失或执行混乱等问题,进一步的,预设存储机构,还可以实现多个事务的同步接收,不必等待前一事务处理完毕后,再接收下一事务,提高事务处理的效率。再进一步的,可以在获取一个事务后,首先判断预设存储机构是否已满,如果预设存储机构已满,没有多余的空间存储下一事务,则需要向业务系统,即用户端操作的应用软件,反馈通知消息,表征预设存储机构已满,不能再接收下一事务,需要用户等待;如果在获取一个事务后,预设存储机构未满,仍能够接收新的事务,则将当前获取的事务存储至预设存储结构中。
公知的,队列是一种特殊的线性表,只允许在表的前端进行读取操作,而在表的后端进行插入操作,是一种操作受限制的线性表,即遵循先入先出的写入、读取原则,先进入的指令先完成并引退,跟着才执行第二条指令,进行插入操作的一侧称为队尾,进行读取操作的一端称为队头,队列的先入先出原则,可以有效保证队列中的指令或事务有效按序执行,避免出现指令或事务丢失或执行过程中出现混乱。
可选的,本申请实施例为保证获取的各事务能够有序的执行,预先设置用于存储事务任务的事务队列,并按照事务获取时间的先后顺序逐一将各所述事务存储至预设事务队列中,然后从事务队列中依次获取暂存的事务,用以执行后续操作步骤。创建事务队列,不仅可以用于暂存获取的多个事务,作为事务处理的中转存储机构,同时,依靠队列先入先出的特殊性,可以保证各事务的有序执行。
堆栈的数据存储原则与队列类似,区别在于采用先入后出原则,此处不再赘述。
需要说明的是,其他可以起到暂存所获取事务的数据结构同样是可取的,不限于本申请实施例提供的事务队列或堆栈,比如在程序运行过程中临时建立的数组等存储结构也是可行的。
步骤S120,依次为每一事务创建事务处理线程。
在对所获取的事务进行处理时,首先需要为各事务创建事务处理线程,通过线程调用系统资源,执行事务代码,完成对事务的处理。
可选的,采用本申请实施例提供的预设存储结构,如事务队列,所获取的各事务被依次存储,在为各事务创建事务处理线程时,可以依次从预设存储结构中读取事务,并按照读取顺序为读取得到的事务创建事务处理线程。设置存储结构,并依次从存储结构中读取事务,进而为读取的事务创建事务处理流程,可以有效避免事务被丢失、遗漏,或在事务处理线程创建过程中,出现混乱,使得线程创建过程可以有序进行。
步骤S130,调用多个事务处理线程,处理各事务处理线程对应的事务。
本发明实施例在处理多个事务时,采用异步处理机制,同时调用多个事务处理线程,分别处理各事务处理线程对应的事务。由于事务具有隔离性,并发调度时彼此之间不受干扰,因此,采用多线程异步处理机制,可以同时处理多个事务,有效缩短事务处理的耗时,进一步的,用户提交的事务可以在较短时间内处理完毕,之前提交的事务处理完毕后,用户可以提交后续的待处理事务进行处理,使得系统整体的处理效率大幅提升。
可选的,线程池是一种多线程处理形式,处理任务前将任务添加到预设队列,然后在创建线程后自动启动这些任务。每个线程都使用默认的堆栈大小,以默认的优先级运行。
本发明实施例提供的事务处理方法,可以预设线程池,通过加载预设线程池,按照事务处理线程创建的先后顺序,依次将各所述事务处理线程加入所述线程池,并按照线程池创建过程中设定的优先级、并行线程数量等参数,执行各加入线程池中的事务处理线程,以处理各事务处理线程对应的事务。
具体的,线程池包含核心线程池、非核心线程池和线程阻塞队列,在为事务创建事务处理线程后,首先判断核心线程池是否已满,如果核心线程池未满,把当前事务处理线程放到核心线程池中执行;
如果核心线程池已满,则判断线程阻塞队列是否已满,如果线程阻塞队列未满,则把当前事务处理线程加入到线程阻塞队列中排队等待,直到核心线程池不满,从队列中读取事务处理线程并执行;
如果阻塞队列已满,判断非核心线程池是否已满,如果非核心线程池未满,则把当前事务处理线程加入到非核心线程池中执行;
如果非核心线程池已满,则将当前事务处理线程挂起,直到核心线程池或非核心线程池中有事务被处理完毕,核心线程池或非核心线程池能够再次处理下一事务。
如果在当前事务处理线程挂起的过程中,核心线程池或非核心线程池能够处理下一事务,首先从线程阻塞队列中读取最先进入阻塞队列排队等候的事务处理线程,并由核心线程池或非核心线程池执行该事务处理线程,处理该事务处理线程对应的事务,而原来挂起的事务处理线程则被存储至线程阻塞队列,进行排队等候,直到被处理。
加入核心线程池或非核心线程池中的事务处理线程根据对应事务的具体内容,调用必要的硬件资源,访问数据库或其他必须软件资源,从而完成对事务的处理。
步骤S140,反馈各事务的处理结果。
在得到事务处理结果后,将事务处理结果返回业务系统,用户通过业务系统获得事务处理结果。
需要说明的是,事务处理线程不论是放在核心线程池中执行,还是放到非核心线程池中执行,执行过程是类似的,在线程执行过程中,如果所需处理的事务需要数据库或其他软件、系统的支持,事务处理线程会根据需要访问数据库,调用必要的数据,或访问其他软件或系统,获取相应的软件资源,又或者访问网络服务器,获取网络资源,最终返回事务处理结果。
通过本申请实施例提供的事务处理方法,用户通过业务系统可以向应用服务中间件同时提交多个事务,提高事务处理的并发性,并且在提交事务时,不必等待前一事务的处理结果,可以直接提交当前需要提交的事务,在事务被处理结束时,用户可直接获得事务处理结果,本发明申请提供的事务处理方法,可以有效提高事务处理的效率,特比是处理多个长事务时,可以大大缩短处理全部长事务所需要的时间,改善用户的使用感受。
本发明实施例提供的事务处理方法的一个应用场景可以包括:
用户通过某业务系统发起数据处理事务请求和历史记录查询请求,业务系统通过应用服务中间件访问与业务系统自身接口不同的数据库,完成数据处理事务和历史记录查询事务。
应用服务中间件获取数据处理软件发起的数据处理事务和历史记录查询事务,并将所获取的两个事务依次存储至预设的事务队列中。之后,按照两个事务在事务队列中存储的顺序,读取数据处理事务和历史记录查询事务,并分别为数据处理事务和历史记录查询事务创建事务处理线程,同时,加载预设的线程池,并将处理数据处理事务的事务处理线程和处理历史记录查询事务的事务处理线程依次加入线程池。
线程池中的核心线程池空闲,便将前述两个事务处理线程加入到核心线程池中执行,处理对应的事务,处理过程中,事务处理线程会根据事务的具体内容,访问数据库或服务器,获得相应的硬件资源或软件资源,在所获取的事务被处理完毕后,向业务系统反馈事务处理结果,用户通过业务系统获得事务处理的结果。
通过本发明实施例提供的事务处理方法,用户在发起一个事务处理请求后,不必等待当前事务被处理完毕,即可发起下一个事务处理请求;或者用户可以同时发起多个事务处理请求,本发明实施例提供的事务处理方法,可以有效提高事务的处理效率,改善用户的使用感受。
下面对本发明实施例提供的事务处理装置进行介绍,下文描述的事务处理装置可以认为是为实现本发明实施例提供的事务处理方法,在中央设备中需设置的功能模块架构;下文描述内容可与上文相互参照。
图2为本发明实施例提供的一种事务处理装置的结构框图,参照图2,该装置可以包括:
获取单元10,用于获取多个事务;
创建单元20,用于依次为每一所述事务创建事务处理线程;
调用单元30,用于调用多个所述事务处理线程,处理各所述事务处理线程对应的事务;
反馈单元40,用于反馈各所述事务的处理结果。
可选的,参见图3,图3为本发明实施例提供的另一种事务处理装置的结构框图,在图2所示实施例提供的事务处理装置基础上,该装置还包括:
存储单元50,用于依次将各所述事务存储至预设存储结构中;
创建单元20,用于依次为每一所述事务创建事务处理线程,具体包括:
从所述预设存储结构中读取一事务;
为读取得到的事务创建事务处理线程。
可选的,所述存储单元50,用于依次将各所述事务存储至预设存储结构中,具体包括:
获取一所述事务后,判断预设存储结构是否已满;
若所述预设存储结构已满,则反馈表征所述预设存储结构已满的通知消息;
若所述预设存储结构未满,则将获取的事务存储至所述预设存储结构中。
可选的,所述预设存储结构包括事务队列,所述存储单元50,用于依次将各所述事务存储至预设存储结构中,具体包括:
依次将各所述事务存储至所述事务队列中。
可选的,调用单元30,用于调用多个所述事务处理线程,处理各所述事务处理线程对应的事务,具体包括:
加载预设线程池;
依次将各所述事务处理线程加入所述线程池,处理各所述事务处理线程对应的事务。
可选的,所述线程池包括核心线程池、线程阻塞队列和非核心线程池,调用单元30用于依次将各所述事务处理线程加入所述线程池,处理各所述事务处理线程对应的事务时,具体包括:
在创建一所述事务处理线程后,若所述核心线程池未满,则将当前事务处理线程加入所述核心线程池执行;
若所述核心线程池已满且所述线程阻塞队列未满,则将当前事务处理线程加入所述线程阻塞队列排队;
若所述线程阻塞队列已满且所述非核心线程池未满,则将当前事务处理线程加入所述非核心线程池执行;
若所述非核心线程池已满,则将当前事务处理线程挂起。
可选的,反馈单元40,用于反馈各所述事务的处理结果,具体包括:
反馈所述核心线程池和/或所述非核心线程池中各事务的处理结果。
本申请实施例还提供一种应用服务中间件,包括:
获取模块,用于获取多个事务;
创建模块,用于依次为每一所述事务创建事务处理线程;
调用模块,用于调用多个所述事务处理线程,处理各所述事务处理线程对应的事务;
反馈模块,用于反馈各所述事务的处理结果。
可选的,本发明申请实施例提供的应用服务中间件还包括:
存储模块,用于依次将各所述事务存储至预设存储结构中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种事务处理方法,其特征在于,包括:
获取多个事务;
依次为每一所述事务创建事务处理线程;
调用多个所述事务处理线程,处理各所述事务处理线程对应的事务;
反馈各所述事务的处理结果。
2.根据权利要求1所述的事务处理方法,其特征在于,在所述依次为每一所述事务创建事务处理线程之前,所述方法还包括:
依次将各所述事务存储至预设存储结构中;
所述依次为每一所述事务创建事务处理线程,包括:
从所述预设存储结构中读取一事务;
为读取得到的事务创建事务处理线程。
3.根据权利要求2所述的事务处理方法,其特征在于,所述依次将各所述事务存储至预设存储结构中,包括:
获取一所述事务后,判断预设存储结构是否已满;
若所述预设存储结构已满,则反馈表征所述预设存储结构已满的通知消息;
若所述预设存储结构未满,则将获取的事务存储至所述预设存储结构中。
4.根据权利要求2所述的事务处理方法,其特征在于,所述预设存储结构包括事务队列,所述依次将各所述事务存储至预设存储结构中,包括:
依次将各所述事务存储至所述事务队列中。
5.根据权利要求1所述的事务处理方法,其特征在于,所述调用多个所述事务处理线程,处理各所述事务处理线程对应的事务,包括:
加载预设线程池;
依次将各所述事务处理线程加入所述线程池,处理各所述事务处理线程对应的事务。
6.根据权利要求5所述的事务处理方法,其特征在于,所述线程池包括核心线程池、线程阻塞队列和非核心线程池,所述依次将各所述事务处理线程加入所述线程池,处理各所述事务处理线程对应的事务,包括:
在创建一所述事务处理线程后,若所述核心线程池未满,则将当前事务处理线程加入所述核心线程池执行;
若所述核心线程池已满且所述线程阻塞队列未满,则将当前事务处理线程加入所述线程阻塞队列排队;
若所述线程阻塞队列已满且所述非核心线程池未满,则将当前事务处理线程加入所述非核心线程池执行;
若所述非核心线程池已满,则将当前事务处理线程挂起。
7.根据权利要求6所述的事务处理方法,其特征在于,所述反馈各所述事务的处理结果,包括:
反馈所述核心线程池和/或所述非核心线程池中各事务的处理结果。
8.一种应用服务中间件,其特征在于,包括:
获取模块,用于获取多个事务;
创建模块,用于依次为每一所述事务创建事务处理线程;
调用模块,用于调用多个所述事务处理线程,处理各所述事务处理线程对应的事务;
反馈模块,用于反馈各所述事务的处理结果。
9.根据权利要求8所述的应用服务中间件,其特征在于,还包括:
存储模块,用于依次将各所述事务存储至预设存储结构中。
CN201810672018.4A 2018-06-26 2018-06-26 一种事务处理方法及应用服务中间件 Pending CN108920258A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810672018.4A CN108920258A (zh) 2018-06-26 2018-06-26 一种事务处理方法及应用服务中间件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810672018.4A CN108920258A (zh) 2018-06-26 2018-06-26 一种事务处理方法及应用服务中间件

Publications (1)

Publication Number Publication Date
CN108920258A true CN108920258A (zh) 2018-11-30

Family

ID=64422674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810672018.4A Pending CN108920258A (zh) 2018-06-26 2018-06-26 一种事务处理方法及应用服务中间件

Country Status (1)

Country Link
CN (1) CN108920258A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918178A (zh) * 2019-03-06 2019-06-21 恒生电子股份有限公司 事务提交方法及相关装置
CN110457116A (zh) * 2019-07-22 2019-11-15 阿里巴巴集团控股有限公司 处理事务请求的方法及装置
CN114168626A (zh) * 2021-12-13 2022-03-11 中国建设银行股份有限公司 一种数据库操作的处理方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179891A1 (en) * 2012-01-05 2013-07-11 Thomas P. Dickens Systems and methods for use in performing one or more tasks
CN103870348A (zh) * 2012-12-14 2014-06-18 中国电信股份有限公司 一种用户并发访问的测试方法和系统
CN104133724A (zh) * 2014-04-03 2014-11-05 腾讯科技(深圳)有限公司 并发任务调度方法及装置
CN105490956A (zh) * 2015-12-07 2016-04-13 方正移动传媒技术(北京)有限公司 一种网络请求处理方法及装置
CN107832146A (zh) * 2017-10-27 2018-03-23 北京计算机技术及应用研究所 高可用集群系统中的线程池任务处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179891A1 (en) * 2012-01-05 2013-07-11 Thomas P. Dickens Systems and methods for use in performing one or more tasks
CN103870348A (zh) * 2012-12-14 2014-06-18 中国电信股份有限公司 一种用户并发访问的测试方法和系统
CN104133724A (zh) * 2014-04-03 2014-11-05 腾讯科技(深圳)有限公司 并发任务调度方法及装置
CN105490956A (zh) * 2015-12-07 2016-04-13 方正移动传媒技术(北京)有限公司 一种网络请求处理方法及装置
CN107832146A (zh) * 2017-10-27 2018-03-23 北京计算机技术及应用研究所 高可用集群系统中的线程池任务处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
唐友,张珑: "《Java语言程序设计》", 31 January 2013 *
孙莹妮: "水环境智能监控平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109918178A (zh) * 2019-03-06 2019-06-21 恒生电子股份有限公司 事务提交方法及相关装置
CN109918178B (zh) * 2019-03-06 2021-04-30 恒生电子股份有限公司 事务提交方法及相关装置
CN110457116A (zh) * 2019-07-22 2019-11-15 阿里巴巴集团控股有限公司 处理事务请求的方法及装置
CN110457116B (zh) * 2019-07-22 2023-10-27 创新先进技术有限公司 处理事务请求的方法及装置
CN114168626A (zh) * 2021-12-13 2022-03-11 中国建设银行股份有限公司 一种数据库操作的处理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
JP6223569B2 (ja) ビジネスフローをスケジュールするためのコンピュータ装置、方法及び装置
US8713571B2 (en) Asynchronous task execution
US7603502B2 (en) Resource accessing with locking
CN107077390B (zh) 一种任务处理方法以及网卡
CN108920258A (zh) 一种事务处理方法及应用服务中间件
CN110597606B (zh) 一种高速缓存友好的用户级线程调度方法
CN106569891B (zh) 一种存储系统中任务调度执行的方法和装置
CN112015713A (zh) 数据库任务的处理方法、装置、电子设备及可读介质
US10067793B2 (en) Data processing method and apparatus for executing task code using reservation instruction and release instruction
CN109558234A (zh) 一种定时任务调度方法和装置
TW200828120A (en) Task processing device
CN107479981B (zh) 一种基于异步调用实现同步调用的处理方法及装置
CN109840149B (zh) 任务调度方法、装置、设备及存储介质
KR20110085994A (ko) 트랜잭션 메모리 내에서의 부수 효과 액션들을 위한 트랜잭션 처리
CN111240812A (zh) 任务执行方法及装置
CN112699150A (zh) 一种数据库操作框架、方法及系统
CN110888726A (zh) 一种多任务并发处理方法及系统
CN107220275B (zh) 数据库句柄处理方法、装置和计算机设备
CN118210632A (zh) 内存分配方法、装置、电子设备及存储介质
CN109582467A (zh) 一种存储系统中io请求的处理方法、系统及相关装置
CN114721818A (zh) 一种基于Kubernetes集群的GPU分时共享方法和系统
CN114020658A (zh) 一种多线程的链表处理方法及相关装置
CN107391253B (zh) 一种降低系统内存分配释放冲突的方法
CN106598726A (zh) 一种多任务管理系统及其分布式部署方法
TW200905567A (en) Notifying user mode scheduler of blocking events

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181130