CN110688532B - 一种事务管理方法和装置 - Google Patents
一种事务管理方法和装置 Download PDFInfo
- Publication number
- CN110688532B CN110688532B CN201910828468.2A CN201910828468A CN110688532B CN 110688532 B CN110688532 B CN 110688532B CN 201910828468 A CN201910828468 A CN 201910828468A CN 110688532 B CN110688532 B CN 110688532B
- Authority
- CN
- China
- Prior art keywords
- transaction
- heap
- node
- overtime
- timeout
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明实施例提供了一种事务管理方法和装置,该方法包括:创建信令发送请求对应的目标事务以及事务标识,创建关键字为当前时间与所述目标事务的最大等待时间的和最小堆的堆节点,将事务标识插入堆节点中,将事务标识与目标事务插入事务链表,获取最小堆堆顶的堆节点,将该堆节点的关键字与当前时间作差获得超时时间,等待超时时间后,获取计时的过程中堆顶堆节点中的超时事务标识,若超时事务标识对应的超时次数小于预设超时次数,则根据超时事务标识,在事务链表中获取超时事务标识对应的超时事务,发送超时事务对应的目标信令。本发明实施例中,通过最小堆对事务进行管理,能够在事务超时未响应时自动重新请求,更加简单、可靠。
Description
技术领域
本发明涉及视联网技术领域,特别是涉及一种事务管理方法和一种事务管理装置。
背景技术
视联网现有的事务请求过程中,大部分采用同步方式,即当请求发出后,等待返回的响应消息,在此期间不进行其他请求的发送,直到收到响应消息后才进行下一步处理,这种方式较为简单,但是有可能会出现等待超时的情况,此时会严重影响处理其他事务的效率。
为了提升事务处理的效率,有时也采用异步方式,即当请求发出后,不进行等待,而是进行其他请求的发送,在收到响应消息后对该事务进行处理,这种方式事务处理效率高,但是在需要处理的请求过多时,会导致事务管理困难,如果需要为了保证请求传输的可靠性而多次发送请求时,则进一步会导致代码的复杂度提高,难以进行有效维护。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种事务管理方法和装置。
为了解决上述问题,本发明实施例第一方面公开了一种事务管理方法,其特征在于,该方法可以包括:
响应于信令发送请求,创建所述信令发送请求对应的目标事务以及事务标识;
创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和;
将所述事务标识插入所述堆节点中;
将所述事务标识与所述目标事务插入事务链表中;
获取所述最小堆堆顶的堆节点,将所述最小堆堆顶的堆节点的关键字与当前时间作差获得超时时间;
计时经过所述超时时间后,获取所述计时的过程中所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识;
若所述超时事务标识对应的超时次数小于预设超时次数,则根据所述超时事务标识,在事务链表中获取所述超时事务标识对应的超时事务;
执行所述超时事务对应的信令发送请求,发送目标信令。
可选地,所述计时经过所述超时时间后,获取所述计时的过程中所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识的步骤之后,所述方法还包括:
若所述超时事务标识达到预设超时次数,则删除所述超时事务标识,并从所述事务链表中删除所述超时事务标识与所述超时事务标识对应的超时事务;
生成事务失败的消息。
可选地,所述执行所述超时事务对应的信令发送请求,发送目标信令的步骤之后,所述方法还包括:
接收针对所述目标信令返回的响应消息;
根据所述响应消息对应的事务标识,在所述事务链表中确定目标事务;
在所述最小堆和所述事务链表中添加所述目标事务对应的响应消息;
根据所述响应消息处理所述目标事务;
在所述最小堆中删除所述响应消息对应的事务标识和所述响应消息;
在所述事务链表中删除所述响应消息对应的事务标识、所述响应消息对应的目标事务和所述响应消息。
可选地,所述执行所述超时事务对应的信令发送请求,发送目标信令的步骤之后,所述方法还包括:
分别计算所述最小堆堆顶的堆节点中的所有事务新的当前时间和最大等待时间的和;
根据所述新的当前时间和最大等待时间的和,分别将所述最小堆堆顶的堆节点中的所有事务插入所述最小堆的堆节点中;和/或,
将所述新的当前时间和最大等待时间的和作为关键字创建新的堆节点,并将所述新的堆节点插入所述最小堆中。
可选地,每一个所述事务链表对应一个最大等待时间,所述将所述事务标识与所述事务插入事务链表中的步骤包括:
确定与所述事务标识对应的最大等待时间相同的目标事务链表;
将所述事务标识与所述事务插入所述目标事务链表。
可选地,所述创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和的步骤,包括:
在最小堆中查找关键字为当前时间与所述目标事务的最大等待时间的和的堆节点;
当存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,将所述目标事务的插入所述堆节点;
当不存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和。
可选地,所述计时经过所述超时时间后,获取所述计时的过程中等待时间超过所述最大等待时间的超时事务标识的步骤,包括:
当所述超时时间大于零时,计时经过所述超时时间后,获取所述计时的过程中等待时间超过所述最大等待时间的超时事务标识;
当所述超时时间小于或等于零时,获取所述堆节点中等待时间超过所述最大等待时间的超时事务标识。
本发明实施例第二方面公开了一种事务管理装置,该装置可以包括:
第一创建模块,用于响应于信令发送请求,创建所述信令发送请求对应的目标事务以及事务标识;
第二创建模块,用于创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和;
第一插入模块,用于将所述事务标识插入所述堆节点中;
第二插入模块,用于将所述事务标识与所述目标事务插入事务链表中;
超时时间计算模块,用于获取所述最小堆堆顶的堆节点,将所述最小堆堆顶的堆节点的关键字与当前时间作差获得超时时间;
超时检测模块,用于计时经过所述超时时间后,获取所述计时的过程中所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识;
事务获取模块,用于若所述超时事务标识对应的超时次数小于预设超时次数,则根据所述超时事务标识,在事务链表中获取所述超时事务标识对应的超时事务;
信令发送模块,用于执行所述超时事务对应的信令发送请求,发送目标信令。
可选地,所述装置还包括:
删除模块,用于若所述超时事务标识达到预设超时次数,则从删除所述超时事务标识对应的堆节点,并从所述事务链表中删除所述超时事务标识与所述超时事务标识对应的超时事务;
所述信令发送模块,还用于生成事务失败的消息。
可选地,所述装置还包括:
接收模块,用于接收针对所述目标信令返回的响应消息;
所述事务获取模块,还用于根据所述响应消息对应的事务标识,在所述事务链表中确定目标事务;
添加模块,用于在所述最小堆和所述事务链表中添加所述目标事务对应的响应消息;
处理模块,用于根据所述响应消息处理所述目标事务;
所述处理模块,还用于在所述最小堆中删除所述响应消息对应的事务标识和所述响应消息;
所述处理模块,还用于在所述事务链表中删除所述响应消息对应的事务标识、所述响应消息对应的目标事务和所述响应消息。
可选地,所述装置还包括:
第三插入模块,用于分别计算所述最小堆堆顶的堆节点中的所有事务新的当前时间和最大等待时间的和;
根据所述新的当前时间和最大等待时间的和,分别将所述最小堆堆顶的堆节点中的所有事务插入所述最小堆的堆节点中;和/或,
将所述新的当前时间和最大等待时间的和作为关键字创建新的堆节点,并将所述新的堆节点插入所述最小堆中。
可选地,每一个所述事务链表对应一个最大等待时间,所述第二插入模块,还用于:
确定与所述事务标识对应的最大等待时间相同的目标事务链表;
将所述事务标识与所述事务插入所述目标事务链表。
可选地,所述第二创建模块包括:
查询子模块,用于在最小堆中查找关键字为当前时间与所述目标事务的最大等待时间的和的堆节点;
堆节点插入子模块,还用于当存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,将所述目标事务的插入所述堆节点;
堆节点创建子模块,还用于当不存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和。
可选地,所述超时检测模块,还用于:
当所述超时时间大于零时,计时经过所述超时时间后,获取所述计时的过程中等待时间超过所述最大等待时间的超时事务标识;
当所述超时时间小于或等于零时,获取所述堆节点中等待时间超过所述最大等待时间的超时事务标识。
本发明实施例包括以下优点:
本发明实施例采用最小堆对事务进行管理,设置事务的最大等待时间与当前时间的和为堆节点关键字,每次处理时获取最小堆堆顶的堆节点,并计算堆顶堆节点关键字与当前时间的超时时间,当计时经过超时时间以后,确认超时时间内最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识,当超时事务标识对应的事务超时次数小于预设超时次数时,重新发送该事务对应的请求信令,从而在不需要额外编写定时发送代码的情况下,一方面在未收到响应消息且超时次数小于超时次数时,可以多次发送信令,避免了接收端因未接收到信令而无回应的问题,保证请求信令发送的可靠性,另一方面,在保证可靠性的同时,降低了代码的复杂度,易于对代码进行维护,能够简便、准确的对事务进行管理。
附图说明
图1是本发明的一种事务管理方法的步骤流程图;
图2是本发明的一种接收响应消息的步骤流程图;
图3是本发明的一种事务管理装置的结构框图;
图4是本发明的一种视联网的组网示意图;
图5是本发明的一种节点服务器的硬件结构示意图;
图6是本发明的一种接入交换机的硬件结构示意图;
图7是本发明的一种以太网协转网关的硬件结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
基于视联网特性,提出了本发明实施例的核心构思之一,遵循视联网的协议,由视联网设备在发送信令时创建信令对应的目标事务、目标事务对应的标识以及最小堆中,并根据最小堆对事务进行管理,从而信令请求多时,优化了事务管理,避免为了保证请求传输的可靠性而多次发送请求时,进一步会导致代码的复杂度提高,难以进行有效维护的问题。
参照图1,示出了本发明的一种事务管理方法实施例的步骤流程图,如图1所示,该方法可以应用于视联网中,具体可以包括如下步骤:
步骤101,响应于信令发送请求,创建所述信令发送请求对应的目标事务以及事务标识。
本发明实施例中,可以在信令发送时,创建对应的事务和事务标识,从而便于事务的管理,事务标识可以是事务的名称,也可以是事务的ID等,本发明实施例对此不做具体限制。
如,Mserver服务器,当Mserver服务器接收到上级平台的GB28181信令时,可以解析GB28181信令,将该信令转化为8F85/8785信令发送给流媒体平台或者视联网协议转化服务器,在发送8F85/8785信令时创建对应的目标事务1,并创建目标事务1对应的事务ID1。
本发明实施例中,上述Mserver服务器可以是应用于监控系统中的服务器,在实际应用中,Mserver服务器可以接收并解析用于请求视频点播与回播的GB28181信令,并将其转化为8F85/8785信令,当8F85/8785信令为视频请求信令时,Mserver服务器将8F85/8785信令发送给流媒体平台,当8F85/8785信令不是视频请求信令时,Mserver服务器将8F85/8785信令发送给协转服务器进行协议转化。
步骤102,创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和。
本发明实施例中,最小堆所指的是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于其左子节点和右子节点的值,因此,最小堆中堆顶点的堆节点是关键字最小的堆节点,当最小堆中插入新的堆节点时,最小堆可以自行调整堆节点的位置,从而保证堆节点的关键字最小。
本发明实施例中,堆节点的关键字为当前时间与目标事务的最大等待时间的和,其中当前时间可以是以秒为单位的从1970年1月1日至创建对应最小堆堆节点时所经历的时间,或者也可以是以秒为单位的自前一天零点至创建对应最小堆堆节点时所经历的时间,本发明实施例对此不做具体限制。
本发明实施例中,最大等待时间所指的是目标事务的处理时限,即超过最大等待时间后没有接收到针对目标事务的响应消息,则可以认为目标事务处理失败,对于每一个目标事务在创建时都可以根据目标事务的具体情况为其分配最大等待时间,其中,最大等待时间应该与当前时间的单位统一,可选地,可以以秒为单位,这样能够有效的管理不同时间插入。
如,创建最小堆的堆节点,当前时间为a秒,目标事务1对应的最大等待时间为b秒,此时,堆节点的关键字为(a+b)秒。
步骤103:将所述事务标识插入所述堆节点中。
本发明实施例中,可以将目标事务插入堆节点中,从而在堆节点根据关键字进行重排时,能够有序的区分不同目标事务,可选地,将目标事务插入堆节点,可以是将目标事务的事务标识插入堆节点对应的链表中,从而使得该事务标识对应的事务能够依据该堆节点进行管理。
如,将事务ID1插入关键字为(a+b)秒的堆节点中。
可选地,所述步骤103包括:
在最小堆中查找关键字为当前时间与所述目标事务的最大等待时间的和的堆节点;
当存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,将所述目标事务的插入所述堆节点;
当不存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和。
本发明实施例中,当根据信令发送请求创建目标事务和事务标识后,可以先查看最小堆中是否存在堆节点,该堆节点的关键字为目标事务的最大等待时间和当前时间的和,如果有,则将该目标事务插入该堆节点中,如果没有,则创建新的堆节点,并使新的堆节点的关键字为目标事务的最大等待时间和当前时间的和,从而使得同一堆节点可以对不止一个事务进行维护,保证事务处理的效率。
本发明实施例中,由于事务的最大等待时间不同,因此,当前时间不同时,有可能出现不同当前时间与不同最大等待时间的和相同的情况,此时,同一堆节点中维护的不同事务可能最大等待时间不同,但关键字相同,因此,也在同一堆节点中维护,可选地,本领域技术人员也可以将同一最大等待时间的事务在同一堆节点中管理,本发明对此不做具体限制。
如,在最小堆中查找是否有关键字为(a+b)秒的堆节点,如果有,则将事务ID1插入该堆节点,如果没有,则在该最小堆中创建关键字为(a+b)秒的堆节点。
步骤104:将所述事务标识与所述目标事务插入事务链表中。
本发明实施例中,在将目标事务插入堆节点的同时,还可以将目标事务与事务标识对应的插入事务链表中,以便在事务处理的过程中,对事务进行管理、维护,可选地,事务链表可以与目标事务的最大等待时间相对应,即一张事务链表中维护的事务最大等待时间相同,或者,也可以与堆节点的关键字对应,即一张事务链表中维护的事务在最小堆中属于同一个堆节点等。
可选地,所述步骤204包括:
确定与所述事务标识对应的最大等待时间相同的目标事务链表;
将所述事务标识与所述事务插入所述目标事务链表。
如,将目标事务1和事务ID1对应插入对应最大等待时间为b秒的目标事务链表b。
步骤105:获取所述最小堆堆顶的堆节点,将所述最小堆堆顶的堆节点的关键字与当前时间作差获得超时时间。
本发明实施例中,在进行事务管理、处理时,每次针对当前最小堆堆顶的堆节点进行处理,由于最小堆堆顶的堆节点是所有堆节点的关键字最小的一个,因此,最小堆堆顶的堆节点是当前最小堆中最需要立即进行处理的,通过对最小堆堆顶的堆节点进行处理,可以在避免遗漏事务的情况下,只处理最紧急的事务,从而减少事务处理的压力。
本发明实施例中,超时时间为堆节点的关键字和当前时间作差,由于当前时间插入的堆节点,其关键字并不一定是最小堆中关键字最小,因此,当前时间在处理最小堆堆顶的堆节点时,该堆节点的关键字中的当前时间是该堆节点创建时的当前时间,而不一定是处理该堆节点时的当前时间,此时,超时时间应小于或等于该堆节点关键字中的最大等待时间。
如,最小堆堆顶的堆节点关键字为(a+b)秒,当前时间为c秒,则计算最小堆堆顶的堆节点超时时间为(a+b)-c秒,记为d秒,d小于或等于b。
步骤106:计时经过所述超时时间后,获取所述计时的过程中所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识。
本发明实施例中,在计算得到超时时间后,等待并计时经过超时时间,然后对堆节点的中的事务进行查询,找到等待时间超过最大等待时间的超时事务标识,此处的等待时间是指等待针对事务请求信令的响应消息的时间。
如,最小堆堆顶的堆节点中维护目标事务1、目标事务2、目标事务3,等待d秒后,从堆节点中取出事务ID1、事务ID2、事务ID3,事务ID1对应事务的等待时间大于最大等待时间1,事务ID2的等待时间小于最大等待时间2,事务ID3的等待时间小于最大等待时间3,因此,获取事务ID1为超时事务标识。
可选地,步骤106包括:
当所述超时时间大于零时,计时经过所述超时时间后,获取所述计时的过程中等待时间超过所述最大等待时间的超时事务标识。
当所述超时时间小于或等于零时,获取所述堆节点中等待时间超过所述最大等待时间的超时事务标识。
本发明实施例中,由于最小堆中不同堆节点的处理需要时间,因此,轮到最小堆堆顶的堆节点时,可能出现当前时间大于或等于该堆节点关键字的情况,此时,计算出的超时时间小于或等于零,在这种情况下,不再等待超时时间,直接对堆节点中的事务进行管理、处理。
如,当d大于零时,等待d秒后,从堆节点中取出事务ID1、事务ID2、事务ID3,事务ID1对应事务的等待时间大于最大等待时间1,事务ID2的等待时间小于最大等待时间2,事务ID3的等待时间小于最大等待时间3,因此,获取事务ID1为超时事务标识。
当d小于或等于零时,直接从堆节点中取出事务ID1、事务ID2、事务ID3,事务ID1对应事务的等待时间大于最大等待时间1,事务ID2的等待时间小于最大等待时间2,事务ID3的等待时间小于最大等待时间3,因此,获取事务ID1为超时事务标识。
可选地,步骤106之后,还包括:
若所述超时事务标识达到预设超时次数,则删除所述超时事务标识,并从所述事务链表中删除所述超时事务标识与所述超时事务标识对应的超时事务。
本发明实施例中,对于不同事务还有预设超时次数,发送信令后,在最大等待时间内未收到对应的响应消息被视为超时一次,当超时此时小于预设超时次数时,可以重复发送信令,但是,当超时次数达到预设超时次数时,则认为该事务请求失败,不再发送该事务对应的请求信令,并将该事务以及事务标识从最小堆与事务链表中删除,从而避免事务处理的冗积、及时清除失败事务。
如,事务ID1对应的目标事务1本次累积超时次数为3,目标事务1的预设超时次数为2,则认为目标事务1失败,在最小堆中删除事务ID1,并在事务链表中删除事务ID1和目标事务1。
生成事务失败的消息。
本发明实施例中,当事务超时次数达到预设超时次数,从而确认事务请求失败后,还可以生成事务失败的消息,可选地,可以根据事务失败的消息,确定是否需要重新发送该事务对应的信令请求,并创建该信令请求对应的目标事务以及事务标识。
如,Mserver服务器生成针对目标事务1生成事务失败的消息,可选地,还可以将事务失败的消息返回给上级平台。
步骤107:若所述超时事务标识对应的超时次数小于预设超时次数,则根据所述超时事务标识,在事务链表中获取所述超时事务标识对应的超时事务。
本发明实施例中,当超时事务标识对应的超时次数小于预设超时次数时,则认为该超时事务标识对应的目标事务还未失败,可以继续进行处理。
如,事务ID1对应的目标事务1本次累积超时次数为1,目标事务1的预设超时次数为2,则认为目标事务1还未失败,此时在事务ID1对应的链表b中获取事务ID1对应的目标事务1。
步骤108:执行所述超时事务对应的信令发送请求,发送目标信令。
如,根据目标事务1发送对应的目标信令8F85/8785信令。
可选地,图2是本发明实施例中接收响应消息的步骤流程图,如图2所示,步骤108之后,还包括:
步骤201:接收针对所述目标信令返回的响应消息;
步骤202:根据所述响应消息对应的事务标识,在所述事务链表中确定目标事务;
步骤203:在所述最小堆和所述事务链表中添加所述目标事务对应的响应消息;
本发明实施例中,在接收到针对目标信令返回的响应消息后,可以将响应消息保存在事务链表与最小堆对应的堆节点中,之后在具体处理相关事务,这样在对堆节点进行处理时,可以避免对已经收到响应消息的目标事务又重复发送目标信令的问题,能够更好的管理目标事务,由于响应消息可能在目标事务的最大等待时间内,即目标事务未超时时接收,也可能在目标事务超时后接收,因此,此处事务标识既包括超时事务,也包括未超时事务的事务标识。
步骤204:根据所述响应消息处理所述目标事务;
步骤205:在所述最小堆中删除所述响应消息对应的事务标识和所述响应消息;
步骤206:在所述事务链表中删除所述响应消息对应的事务标识、所述响应消息对应的目标事务和所述响应消息。
本发明实施例中,当根据响应消息处理目标事务完成后,可以将响应消息对应的目标事务、响应消息对应的事务标识以及响应消息均从事务链表和最小堆中删除,从而表示该目标事务的处理全部结束,避免影响后续事务的管理。
如,接收到了针对8F85/8785信令返回的响应消息1,根据所述响应消息1确认对应的事务ID1,在事务链表中确认对应的目标事务1,在堆节点和事务链表中添加该事务ID1对应的响应消息1,根据响应消息1处理目标事务1,处理完成后,在最小堆和事务链表中删除事务ID1、目标事务1和响应消息1。
可选地,步骤108之后,还包括:
分别计算所述最小堆堆顶的堆节点中的所有事务新的当前时间和最大等待时间的和。
本发明实施例中,当本次对最小堆堆顶的堆节点事务是否超时、是否失败、是否处理完成确认完毕后,可以将剩余的所有事务重新插入最小堆,此时先分别计算所有事务新的当前时间和最大等待时间的和,并根据新的当前时间和最大等待时间的和,将剩余所有的事务分别插入最小堆中。
本发明实施例中,新的当前时间指对最小堆堆顶的堆节点中所有的事务处理完成后,如确定是否超时、重新发送信令、删除事务等等后的当前时间,新的当前时间区别于原最小堆堆顶的堆节点关键字中的当前时间,用于将事务重新插入最小堆中。
根据所述新的当前时间和最大等待时间的和,分别将所述最小堆堆顶的堆节点中的所有事务插入所述最小堆的堆节点中;和/或,
将所述新的当前时间和最大等待时间的和作为关键字创建新的堆节点,并将所述新的堆节点插入所述最小堆中。
本发明实施例中,由于同一堆节点中的事务可能最大等待时间不同,因此,在新的当前时间相同的情况下,新的当前时间和最大等待时间的和也可能不同,此时,该堆节点中的事务重新插入最小堆中时,可能插入最小堆中已有的一个或多个堆节点中,也可能以新的当前时间和最大等待时间的和为关键字在最小堆创建新的堆节点,本发明实施例对此不做具体限制。
如,新的当前时间为e秒,原最小堆堆顶的堆节点中维护目标事务1、目标事务2、目标事务3,目标事务1由于超时次数达到预设超时次数,或接收到响应消息被删除,此时原最小堆堆顶的堆节点中剩余目标事务2和目标事务3,目标事务2的最大等待时间f秒,则目标事务2计算新的当前时间和最大等待时间为(e+f)秒,目标事务3的最大等待时间为g秒,则目标事务3为(e+g)秒,在最小堆中存在关键字与(e+f)秒相同的堆节点,则将目标事务2的事务ID2插入该堆节点中,在最小堆中不存在关键字与(e+g)秒相同的堆节点,则在最小堆中创建关键字为(e+g)秒的堆节点,将目标事务3对应的事务ID3插图该堆节点中。
本发明实施例本发明实施例采用最小堆对事务进行管理,设置事务的最大等待时间与当前时间的和为堆节点关键字,每次处理时获取最小堆堆顶的堆节点,并计算堆顶堆节点关键字与当前时间的超时时间,当计时经过超时时间以后,确认超时时间内最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识,当超时事务标识对应的事务超时次数小于预设超时次数时,重新发送该事务对应的请求信令,从而在不需要额外编写定时发送代码的情况下,一方面在未收到响应消息且超时次数小于超时次数时,可以多次发送信令,避免了接收端因未接收到信令而无回应的问题,保证请求信令发送的可靠性,另一方面,在保证可靠性的同时,降低了代码的复杂度,易于对代码进行维护,能够简便、准确的对事务进行管理。
实施例二
参照图3,示出了本发明的一种事务管理装置300实施例的结构框图,该装置可以应用于视联网中,具体可以包括如下模块:
第一创建模块301,用于响应于信令发送请求,创建所述信令发送请求对应的目标事务以及事务标识;
第二创建模块302,用于创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和;
第一插入模块303,用于将所述事务标识插入所述堆节点中;
第二插入模块304,用于将所述事务标识与所述目标事务插入事务链表中;
超时时间计算模块305,用于获取所述最小堆堆顶的堆节点,将所述最小堆堆顶的堆节点的关键字与当前时间作差获得超时时间;
超时检测模块306,用于计时经过所述超时时间后,获取所述计时的过程中所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识;
事务获取模块307,用于若所述超时事务标识对应的超时次数小于预设超时次数,则根据所述超时事务标识,在事务链表中获取所述超时事务标识对应的超时事务;
信令发送模块308,用于执行所述超时事务对应的信令发送请求,发送目标信令。
可选地,所述装置还包括:
删除模块,用于若所述超时事务标识达到预设超时次数,则从删除所述超时事务标识对应的堆节点,并从所述事务链表中删除所述超时事务标识与所述超时事务标识对应的超时事务;
所述信令发送模块,还用于生成事务失败的消息。
可选地,所述装置还包括:
接收模块,用于接收针对所述目标信令返回的响应消息;
所述事务获取模块,还用于根据所述响应消息对应的事务标识,在所述事务链表中确定目标事务;
添加模块,用于在所述最小堆和所述事务链表中添加所述目标事务对应的响应消息;
处理模块,用于根据所述响应消息处理所述目标事务;
所述处理模块,还用于在所述最小堆中删除所述响应消息对应的事务标识和所述响应消息;
所述处理模块,还用于在所述事务链表中删除所述响应消息对应的事务标识、所述响应消息对应的目标事务和所述响应消息。
可选地,所述装置还包括:
第三插入模块,用于分别计算所述最小堆堆顶的堆节点中的所有事务新的当前时间和最大等待时间的和;
根据所述新的当前时间和最大等待时间的和,分别将所述最小堆堆顶的堆节点中的所有事务插入所述最小堆的堆节点中;和/或,
将所述新的当前时间和最大等待时间的和作为关键字创建新的堆节点,并将所述新的堆节点插入所述最小堆中。
可选地,每一个所述事务链表对应一个最大等待时间,所述第二插入模块304,还用于:
确定与所述事务标识对应的最大等待时间相同的目标事务链表;
将所述事务标识与所述事务插入所述目标事务链表。
可选地,所述第二创建模块包括:
查询子模块,用于在最小堆中查找关键字为当前时间与所述目标事务的最大等待时间的和的堆节点;
堆节点插入子模块,还用于当存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,将所述目标事务的插入所述堆节点;
堆节点创建子模块,还用于当不存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和。
可选地,所述超时检测模块,还用于:
当所述超时时间大于零时,计时经过所述超时时间后,获取所述计时的过程中等待时间超过所述最大等待时间的超时事务标识;
当所述超时时间小于或等于零时,获取所述堆节点中等待时间超过所述最大等待时间的超时事务标识。
本发明实施例采用最小堆对事务进行管理,设置事务的最大等待时间与当前时间的和为堆节点关键字,每次处理时获取最小堆堆顶的堆节点,并计算堆顶堆节点关键字与当前时间的超时时间,当计时经过超时时间以后,确认超时时间内最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识,当超时事务标识对应的事务超时次数小于预设超时次数时,重新发送该事务对应的请求信令,从而在不需要额外编写定时发送代码的情况下,一方面在未收到响应消息且超时次数小于超时次数时,可以多次发送信令,避免了接收端因未接收到信令而无回应的问题,保证请求信令发送的可靠性,另一方面,在保证可靠性的同时,降低了代码的复杂度,易于对代码进行维护,能够简便、准确的对事务进行管理。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了更好的说明本发明的方案,以下对视联网进行详细说明:
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:
视联网所应用的部分技术如下所述:
网络技术(Network Technology)
视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(Packet Switching)或网络电路交换(CircuitSwitching),视联网技术采用Packet Switching满足Streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。
交换技术(Switching Technology)
视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载IP数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。
服务器技术(Server Technology)
视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。
储存器技术(Storage Technology)
统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级IP互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。
网络安全技术(Network Security Technology)
视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。
服务创新技术(Service Innovation Technology)
统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或PC直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图4所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图5所示,主要包括网络接口模块501、交换引擎模块502、CPU模块503、磁盘阵列模块504;
其中,网络接口模块501,CPU模块503、磁盘阵列模块504进来的包均进入交换引擎模块502;交换引擎模块502对进来的包进行查地址表505的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器506的队列;如果包缓存器506的队列接近满,则丢弃;交换引擎模块502轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块504主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块503主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表505(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块504的配置。
接入交换机:
如图6所示,主要包括网络接口模块(下行网络接口模块601、上行网络接口模块602)、交换引擎模块603和CPU模块604;
其中,下行网络接口模块601进来的包(上行数据)进入包检测模块605;包检测模块605检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块603,否则丢弃;上行网络接口模块602进来的包(下行数据)进入交换引擎模块603;CPU模块604进来的数据包进入交换引擎模块603;交换引擎模块603对进来的包进行查地址表606的操作,从而获得包的导向信息;如果进入交换引擎模块603的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器607的队列;如果该包缓存器607的队列接近满,则丢弃;如果进入交换引擎模块603的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器607的队列;如果该包缓存器607的队列接近满,则丢弃。
交换引擎模块603轮询所有包缓存器队列,在本发明实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块608是由CPU模块604来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块604主要负责与节点服务器之间的协议处理,对地址表606的配置,以及,对码率控制模块608的配置。
以太网协转网关:
如图7所示,主要包括网络接口模块(下行网络接口模块701、上行网络接口模块702)、交换引擎模块703、CPU模块704、包检测模块705、地址表706、包缓存器707、码率控制模块708和MAC添加模块709、MAC删除模块710。
其中,下行网络接口模块701进来的数据包进入包检测模块705;包检测模块705检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块710减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块701检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MACSA、以太网length or frame type,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2、视联网数据包定义
2.1接入网数据包定义
接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。
如下表所示,接入网的数据包主要包括以下几部分:
DA | SA | Reserved | Payload | CRC |
其中:
目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;
源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同;
保留字节由2个字节组成;
payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;
CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。
2.2城域网数据包定义
城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。
本说明书中标签的定义和MPLS(Multi-Protocol Label Switch,多协议标签交换)的标签的定义类似,假设设备A和设备B之间有两个连接,那么数据包从设备A到设备B就有2个标签,数据包从设备B到设备A也有2个标签。标签分入标签、出标签,假设数据包进入设备A的标签(入标签)是0x0000,这个数据包离开设备A时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与MPLS的标签分配是不同的,MPLS的标签分配是交换机、服务器互相协商的结果。
如下表所示,城域网的数据包主要包括以下几部分:
DA | SA | Reserved | 标签 | Payload | CRC |
即目的地址(DA)、源地址(SA)、保留字节(Reserved)、标签、payload(PDU)、CRC。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种事务管理方法和一种事务管理装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种事务管理方法,其特征在于,所述方法包括:
响应于信令发送请求,创建所述信令发送请求对应的目标事务以及事务标识;
创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和;
将所述事务标识插入所述堆节点中;
将所述事务标识与所述目标事务插入事务链表中;
获取所述最小堆堆顶的堆节点,将所述最小堆堆顶的堆节点的关键字与当前时间作差获得超时时间;
获取所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识;
若所述超时事务标识对应的超时次数小于预设超时次数,则根据所述超时事务标识,在事务链表中获取所述超时事务标识对应的超时事务;
执行所述超时事务对应的信令发送请求,发送目标信令;
其中,所述获取所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识,包括:
当所述超时时间大于零时,计时经过所述超时时间后,获取所述计时的过程中等待时间超过所述最大等待时间的超时事务标识;
当所述超时时间小于或等于零时,获取所述堆节点中等待时间超过所述最大等待时间的超时事务标识。
2.根据权利要求1所述的方法,其特征在于,所述计时经过所述超时时间后,获取所述计时的过程中所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识的步骤之后,所述方法还包括:
若所述超时事务标识达到预设超时次数,则删除所述超时事务标识,并从所述事务链表中删除所述超时事务标识与所述超时事务标识对应的超时事务;
生成事务失败的消息。
3.根据权利要求1所述的方法,其特征在于,所述执行所述超时事务对应的信令发送请求,发送目标信令的步骤之后,所述方法还包括:
接收针对所述目标信令返回的响应消息;
根据所述响应消息对应的事务标识,在所述事务链表中确定目标事务;
在所述最小堆和所述事务链表中添加所述目标事务对应的响应消息;
根据所述响应消息处理所述目标事务;
在所述最小堆中删除所述响应消息对应的事务标识和所述响应消息;
在所述事务链表中删除所述响应消息对应的事务标识、所述响应消息对应的目标事务和所述响应消息。
4.根据权利要求1所述的方法,其特征在于,所述执行所述超时事务对应的信令发送请求,发送目标信令的步骤之后,所述方法还包括:
分别计算所述最小堆堆顶的堆节点中的所有事务新的当前时间和最大等待时间的和;
根据所述新的当前时间和最大等待时间的和,分别将所述最小堆堆顶的堆节点中的所有事务插入所述最小堆的堆节点中;和/或,
将所述新的当前时间和最大等待时间的和作为关键字创建新的堆节点,并将所述新的堆节点插入所述最小堆中。
5.根据权利要求1所述的方法,其特征在于,每一个所述事务链表对应一个最大等待时间,所述将所述事务标识与所述事务插入事务链表中的步骤,包括:
确定与所述事务标识对应的最大等待时间相同的目标事务链表;
将所述事务标识与所述事务插入所述目标事务链表。
6.根据权利要求1所述的方法,其特征在于,所述创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和的步骤,包括:
在最小堆中查找关键字为当前时间与所述目标事务的最大等待时间的和的堆节点;
当存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,将所述目标事务的插入所述堆节点;
当不存在所述关键字为当前时间与所述目标事务的最大等待时间的和的堆节点时,创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和。
7.一种事务管理装置,其特征在于,所述装置包括:
第一创建模块,用于响应于信令发送请求,创建所述信令发送请求对应的目标事务以及事务标识;
第二创建模块,用于创建最小堆的堆节点,所述堆节点的关键字为当前时间与所述目标事务的最大等待时间的和;
第一插入模块,用于将所述事务标识插入所述堆节点中;
第二插入模块,用于将所述事务标识与所述目标事务插入事务链表中;
超时时间计算模块,用于获取所述最小堆堆顶的堆节点,将所述最小堆堆顶的堆节点的关键字与当前时间作差获得超时时间;
超时检测模块,用于获取所述最小堆堆顶的堆节点中等待时间超过所述最大等待时间的超时事务标识;
事务获取模块,用于若所述超时事务标识对应的超时次数小于预设超时次数,则根据所述超时事务标识,在事务链表中获取所述超时事务标识对应的超时事务;
信令发送模块,用于执行所述超时事务对应的信令发送请求,发送目标信令;
其中,所述超时检测模块,包括:
第一检测单元,用于当所述超时时间大于零时,计时经过所述超时时间后,获取所述计时的过程中等待时间超过所述最大等待时间的超时事务标识;
第二检测单元,用于当所述超时时间小于或等于零时,获取所述堆节点中等待时间超过所述最大等待时间的超时事务标识。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
删除模块,用于若所述超时事务标识达到预设超时次数,则从删除所述超时事务标识对应的堆节点,并从所述事务链表中删除所述超时事务标识与所述超时事务标识对应的超时事务;
所述信令发送模块,还用于生成事务失败的消息。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收针对所述目标信令返回的响应消息;
所述事务获取模块,还用于根据所述响应消息对应的事务标识,在所述事务链表中确定目标事务;
添加模块,用于在所述最小堆和所述事务链表中添加所述目标事务对应的响应消息;
处理模块,用于根据所述响应消息处理所述目标事务;
所述处理模块,还用于在所述最小堆中删除所述响应消息对应的事务标识和所述响应消息;
所述处理模块,还用于在所述事务链表中删除所述响应消息对应的事务标识、所述响应消息对应的目标事务和所述响应消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910828468.2A CN110688532B (zh) | 2019-09-03 | 2019-09-03 | 一种事务管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910828468.2A CN110688532B (zh) | 2019-09-03 | 2019-09-03 | 一种事务管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688532A CN110688532A (zh) | 2020-01-14 |
CN110688532B true CN110688532B (zh) | 2022-06-21 |
Family
ID=69108770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910828468.2A Active CN110688532B (zh) | 2019-09-03 | 2019-09-03 | 一种事务管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688532B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112104521A (zh) * | 2020-09-08 | 2020-12-18 | 北京金山云网络技术有限公司 | 请求超时监控方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744757A (zh) * | 2004-09-01 | 2006-03-08 | 华为技术有限公司 | 保证通用无线分组业务支持节点间业务连续性的方法 |
CN101339527A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 影子内存的备份方法及装置 |
CN105608086A (zh) * | 2014-11-17 | 2016-05-25 | 中兴通讯股份有限公司 | 分布式数据库系统的事务处理方法及装置 |
CN106101022A (zh) * | 2016-06-15 | 2016-11-09 | 珠海迈科智能科技股份有限公司 | 一种数据请求处理方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5391551B2 (ja) * | 2008-01-28 | 2014-01-15 | ソニー株式会社 | 認証システム、サーバ装置および認証方法 |
-
2019
- 2019-09-03 CN CN201910828468.2A patent/CN110688532B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744757A (zh) * | 2004-09-01 | 2006-03-08 | 华为技术有限公司 | 保证通用无线分组业务支持节点间业务连续性的方法 |
CN101339527A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 影子内存的备份方法及装置 |
CN105608086A (zh) * | 2014-11-17 | 2016-05-25 | 中兴通讯股份有限公司 | 分布式数据库系统的事务处理方法及装置 |
CN106101022A (zh) * | 2016-06-15 | 2016-11-09 | 珠海迈科智能科技股份有限公司 | 一种数据请求处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110688532A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109617956B (zh) | 一种数据处理方法和装置 | |
CN111193788A (zh) | 一种音视频流负载均衡方法和装置 | |
CN110190973B (zh) | 一种在线状态检测方法及装置 | |
CN109474715B (zh) | 一种基于视联网的资源配置方法和装置 | |
CN110381119B (zh) | 一种日志信息的获取方法、系统及装置和存储介质 | |
CN110557319B (zh) | 一种基于视联网的报文处理方法及装置 | |
CN110138513B (zh) | 一种数据传输方法和视联网系统 | |
CN109743284B (zh) | 一种基于视联网的视频处理方法及系统 | |
CN109151061B (zh) | 一种数据存储方法和装置 | |
CN109347930B (zh) | 一种任务处理方法和装置 | |
CN111478791B (zh) | 一种数据管理方法和装置 | |
CN110493149B (zh) | 一种报文处理的方法和装置 | |
CN110022500B (zh) | 一种丢包处理方法和装置 | |
CN110166363B (zh) | 一种组播链路监测方法及装置 | |
CN109861929B (zh) | 一种数据缓存处理的方法和装置 | |
CN110688532B (zh) | 一种事务管理方法和装置 | |
CN110830817A (zh) | 视频转码容量调节方法及视频转码服务器 | |
CN110062259B (zh) | 视频获取方法、系统、设备和计算机可读存储介质 | |
CN110784683B (zh) | 一种监控资源的管理方法、装置及存储介质 | |
CN110808896B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN110267110B (zh) | 一种基于视联网的并发点播处理方法和系统 | |
CN110536148B (zh) | 一种基于视联网的直播方法和设备 | |
CN110213533B (zh) | 一种视联网监控视频流的获取方法及装置 | |
CN110166840B (zh) | 一种业务处理方法、系统及装置 | |
CN109451030B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |