CN111324621B - 事件处理方法、装置、设备及存储介质 - Google Patents
事件处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111324621B CN111324621B CN202010102110.4A CN202010102110A CN111324621B CN 111324621 B CN111324621 B CN 111324621B CN 202010102110 A CN202010102110 A CN 202010102110A CN 111324621 B CN111324621 B CN 111324621B
- Authority
- CN
- China
- Prior art keywords
- event
- target
- node
- red
- time
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- 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
-
- 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
Abstract
本申请提供了一种事件处理方法、装置、设备及存储介质,涉及数据处理领域。该方法包括:接收事件应答消息;响应事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,节点用于存储事件信息,其中,时间轮包括多个时间槽,每个时间槽对应设置有两个以上的红黑树;删除第一目标节点,并更新第一目标红黑树,第一目标红黑树为第一目标节点所属的红黑树。利用本申请的技术方案能够提高超时处理机制的处理效率。
Description
技术领域
本申请属于数据处理领域,尤其涉及一种事件处理方法、装置、设备及存储介质。
背景技术
随着移动互联网技术的发展,联机系统所接收的并发请求的数量巨大,为联机系统的性能带来巨大的压力。为了提高联机系统性能,提高资源利用率,超时处理机制应运而生。
现阶段,超时处理机制采用时间轮技术。在进行系统间的调用操作时,将事件数据插入至时间轮对应的链表中。在后续进行超时处理操作的过程中,需要遍历链表从而获取到对应的事件数据,以对事件数据进行对应的处理操作。
但对于请求高并发的联机系统而言,链表中事件数据对应的节点数目非常多,查找和删除链表中时间数据对应的节点或花费的时间会大大增长,降低了超时处理机制的处理效率。
发明内容
本申请实施例提供了一种事件处理方法、装置、设备及存储介质,能够提高超时处理机制的处理效率。
第一方面,本申请实施例提供一种事件处理方法,包括:接收事件应答消息;响应事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,节点用于存储事件信息,其中,时间轮包括多个时间槽,每个时间槽对应设置有两个以上的红黑树;删除第一目标节点,并更新第一目标红黑树,第一目标红黑树为第一目标节点所属的红黑树。
第二方面,本申请实施例提供一种事件处理装置,包括:接收模块,接收事件应答消息;查询模块,用于响应事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,节点用于存储事件信息,其中,时间轮包括多个时间槽,每个时间槽对应设置有两个以上的红黑树;处理模块,用于删除第一目标节点,并更新第一目标红黑树,第一目标红黑树为第一目标节点所属的红黑树。
第三方面,本申请实施例提供一种事件处理设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现第一方面的技术方案中的事件处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现第一方面的技术方案中的事件处理方法。
本申请实施例提供一种事件处理方法、装置、设备及存储介质,时间轮的每个时间槽对应设置有两个以上的红黑树。基于事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,将第一目标节点删除,并更新删除第一目标节点后的红黑树,以完成事件处理流程。红黑树具有从根节点到叶子节点的最长的可能路径不多于最短的可能路径的两倍长的特性,在红黑树中查找和删除节点查找所需的路径长度更短,所花费的时间也更短。尤其是在存储事件信息的节点的数量巨大的情况下,能够进一步缩短查找和删除节点查找所需的路径和花费的时间,从而提高超时处理机制的处理效率。
附图说明
从下面结合附图对本申请的具体实施方式的描述中可以更好地理解本申请。其中,相同或相似的附图标记表示相同或相似的特征。
图1为本申请实施例提供的一种时间轮的示意图;
图2为本申请一实施例提供的一种事件处理方法的流程图;
图3为本申请另一实施例提供的一种事件处理方法的流程图;
图4为本申请又一实施例提供的一种事件处理方法的流程图;
图5为本申请实施例提供的一种超时遍历的示意图;
图6为本申请再一实施例提供的一种事件处理方法的流程图;
图7为本申请一实施例提供的一种事件处理装置的结构示意图;
图8为本申请另一实施例提供的一种事件处理装置的结构示意图;
图9为本申请实施例中一种事件处理设备的硬件结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本申请的全面理解。但是,对于本领域技术人员来说很明显的是,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请的更好的理解。本申请决不限于下面所提出的任何具体配置和算法,而是在不脱离本申请的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本申请造成不必要的模糊。
本申请实施例提供一种事件处理方法、装置、设备及存储介质,可应用于超时处理机制的场景,包括对事件请求和应答均正常的场景和应答超时的场景,在此并不限定。具体可由事件处理设备执行,处理设备可包括服务器、终端设备等,在此并不限定事件处理设备的类型。在本申请中,可设置与时间轮对应的多个红黑树。在一些示例中,时间轮可作为超时控制器使用。在接收事件应答消息后,可在红黑树的节点中查找与事件应答消息对应的节点,并删除该节点,以完成事件处理流程。其中,事件可通过线程处理。在一些示例中,事件可包括超时事件,在此并不限定。
时间轮可模拟时钟运行一圈代表固定时长。图1为本申请实施例提供的一种时间轮的示意图。如图1所示,时间轮包括多个时间槽。每个时间槽可对应设置有两个以上的红黑树。时间槽的长度为时间长度,可根据工作场景和工作需求设定,比如,时间槽的长度为1秒。时间槽对应的两个以上的红黑树具体可对应该时间槽的不同位置。如图1所示,时间槽30对应有多个红黑树。红黑树是一种自平衡二叉查找树,符合特定的特性规则,以保证在红黑树中,从根节点到叶子节点的最长的可能路径不多于最短的可能路径的两倍长。如图1所示,黑色节点为黑色节点,空白节点为红色节点。红黑树的节点中存储有事件的事件信息。
本申请实施例可提供一种事件处理方法。图2为本申请一实施例提供的一种事件处理方法的流程图。如图2所示,该时间处理方法可包括步骤S101至步骤S103。
在步骤S101中,接收事件应答消息。
其中,事件应答消息用于指示对事件的应答。响应于事件应答消息,可进行事件应答操作或超时遍历操作等,在此并不限定。
在步骤S102中,响应事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点。
其中,时间轮包括多个时间槽。每个时间槽对应设置有两个以上的红黑树。具体地,时间槽下挂载有两个以上的红黑树。红黑树的节点用于存储事件信息。
在一些示例中,每个时间槽可包括两个以上的精度槽。每个精度槽对应设置有一个红黑树。具体地,每个精度槽下挂载有一个红黑树。通过精度槽的设置,可细化超时处理机制的粒度,从而减小甚至消除超时处理介质中出现的时间误差,提高超时处理机制的准确性。而且,超时处理机制的粒度细化,也可适用于不同量级调用等待的系统。
可先确定精度槽的长度,再根据时间槽的长度和精度槽的长度,确定每个时间槽中精度槽的数目。精度槽的长度可根据工作场景和工作需求设定,在此并不限定。比如,如图1所示,每个时间槽可包括10个精度槽,每个精度槽对应有一个红黑树。时间槽的长度为1000毫秒,精度槽的长度为100毫秒,若时间轮一圈为60秒,则时间轮包括60个时间槽,时间轮包括600个精度槽。
响应事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,可指根据事件应答消息在时间轮对应的红黑树的节点;也可指由事件应答消息触发某种事件处理操作,在时间轮对应的多个红黑树的节点中查找第一目标节点,在此并不限定。第一目标节点的数目可以为一个也可以为两个以上,在此并不限定。
在步骤S103中,删除第一目标节点,并更新第一目标红黑树。
其中,第一目标红黑树为第一目标节点所属的红黑树。将第一目标节点删除后,需要将红黑树中未被删除的节点按照红黑树的特性规则排列,更新该红黑树,以保证更新后的红黑树符合红黑树的特性规则。
在本申请实施例中,时间轮的每个时间槽对应设置有两个以上的红黑树。基于事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,将第一目标节点删除,并更新删除第一目标节点后的红黑树,以完成事件处理流程。红黑树具有从根节点到叶子节点的最长的可能路径不多于最短的可能路径的两倍长的特性,在红黑树中查找和删除节点查找所需的路径长度更短,所花费的时间也更短。尤其是在存储事件信息的节点的数量巨大的情况下,能够进一步缩短查找和删除节点查找所需的路径和花费的时间,从而提高超时处理机制的处理效率。
图3为本申请另一实施例提供的一种事件处理方法的流程图。图3与图2的不同之处在于,图2中的步骤S102可具体细化为图3中的步骤S1021。
在步骤S1021中,根据第一目标事件对应的节点标识,确定第一目标精度槽,在第一目标精度槽对应的红黑树中确定第一目标节点。
其中,第一目标事件为要求查找并删除的节点中存储的事件信息对应的事件。事件应答消息可包括第一目标事件对应的节点标识。比如,节点标识可位于时间应答消息的报文的报文头。当读取到该时间应带消息的报文时,可从该报文的报文头获取到第一目标事件对应的节点标识。节点标识用于标识红黑树中存储事件的节点。需要说明的是,节点标识具有唯一性。通过该节点标识,可定位第一目标事件存储对应的精度槽即第一目标精度槽。定位至第一目标精度槽后,即可在第一目标精度槽下挂载的红黑树中确定第一目标节点。
在一些示例中,节点标识可包括第一部分和第二部分。通过第二部分可定位第一目标精度槽。通过整体的节点标识可定位第一目标精度槽下挂载的红黑树中的第一目标节点。比如,事件存储的节点的节点标识可基于该事件的事件标识和该事件的绝对超时时间生成。绝对超时时间为事件进入时间与超时时长的加和。根据该事件的绝对超时时间可确定该事件的事件信息所在的红黑树对应的精度槽的标识。对应地,第一部分与事件标识对应,第二部分与精度槽的标识对应。例如,节点标识为100230022,其中第一部分为前五位10023,第二部分为后四位0022。若时间轮如图1所示,则该节点标识对应的节点应该位于第三个时间槽中的第三个精度槽下挂载的红黑树上。
通过节点标识定位第一目标节点,不仅提高了准确性,也缩短了查找和删除第一目标节点所需花费的时间。且节点标识具有唯一性,也不会存在不同事件存储的节点对应有相同节点标识的情况,从而避免在删除超时事件时出现识别错误或删除错误,也提高了超时处理机制的可靠性和稳定性。
图4为本申请又一实施例提供的一种事件处理方法的流程图。筛检处理操作消息包括事件应答消息。图4与图2的不同之处在于,图2中的步骤S102可具体细化为图4中的步骤S1022。
在步骤S1022,对第一目标红黑树进行遍历,将第一目标红黑树中绝对超时时间早于当前时间的事件的事件信息存储对应的节点作为第一目标节点。
超时遍历操作可通过线程的while循环实现。但线程进行完毕发送事件请求消息,接收到事件应答消息后。由于时间已经发生偏移,需要将时间发生偏移后已经超时的事件删除。对应地,将已经超时的事件的事件信息存储对应的节点删除。具体地,第一目标红黑树包括上一次线程循环的时间与当前时间之间的时间段对应的精度槽中的红黑树,以及当前时间对应的精度槽中的红黑树。事件的绝对超时时间早于当前时间,标识该事件已经超时。对第一目标红黑树进行遍历,若在第一目标红黑树中查找到存储有绝对超时时间早于当前时间的事件的事件信息的节点,将该节点作为第一目标节点删除。下一次线程循环中的上一次线程循环的时间更新为本次线程循环中的当前时间。第一目标红黑树中的存储有绝对超时时间不早于当前时间的事件的事件信息的节点不需做删除处理。
在时间轮中时间指针随着时间的偏移而移动。若将时间轮视为表盘,则时间指针的运动轨迹与表盘中指针的运动轨迹基本相同。其中,当前时间的偏移精度即时间指针移动的精度以精度槽的长度为基准。比如,图5为本申请实施例提供的一种超时遍历的示意图。为了便于说明,图5中并未将多个精度槽首位相连形成圆环形。时间指针在经过精度槽的长度的时间后,移动一个精度槽。在上一次线程循环时时间指针指向的精度槽即为上一次线程循环的时间对应的精度槽,在当前时间时间指针指向的精度槽即为当前时间对应的精度槽。如图5所示,精度槽2至精度槽5下挂载的红黑树即为第一目标红黑树。
图6为本申请再一实施例提供的一种事件处理方法的流程图。图6与图2的不同之处在于,图6所示的事件处理方法还可包括步骤S104至步骤S108。
在步骤S104中,获取第二目标事件的事件信息。
其中,第二目标事件为进入线程处理过程的一个或两个以上事件。
在步骤S105中,为第二目标事件分配事件标识。
在接收到事件请求消息时,事件处理设备为第二目标事件分配事件标识。事件标识具有唯一性,也就是说,不同的事件具有不同的事件标识。在一些示例中,可基于第二目标事件占用线程的线程序列号和预设的启动线程数目,为第二目标事件分配事件标识。第二目标事件的事件信息为要求存储入时间轮对应的红黑树的节点中的事件的时间信息。
对于占用同一线程的事件来说,可按照进入线程处理过程的先后顺序,对占用同一线程的事件分配事件标识。进入线程处理过程的第一个事件的事件标识可为占用的线程的线程序列号与预设启动的线程总数之和;进入该线程处理的第二个事件的事件标识可在第一个事件的事件标识的基础上增加预设启动的线程总数;进入该线程处理的第三个事件的事件标识可在第二个事件的事件标识的基础上增加预设启动的线程总数,依次类推。比如,以占用同一线程的第一个事件、第二个事件和第三个事件为例,该线程的线程序列号为10001,预设启动的线程总数为20。第一个事件的事件标识为100021,第二个事件的事件标识为100041,第三个事件的事件标识为10061。
对于占用不同线程的事件来说,为事件分配事件标识利用的线程序列号不同。比如,线程A的线程序列号为10001,线程B的线程序列号为10002,预设启动的线程总数为20。占用线程A的第一个事件的事件标识为10021;占用线程A的第二个事件的事件标识为10041;占用线程B的第一个事件的事件标识为10022;占用线程B的第二个事件的事件标识为10042。
在步骤S106中,基于第二目标事件的事件标识和第二目标事件的绝对超时时间,生成第二目标节点的节点标识。
其中,根据事件的绝对超时时间,可确定该事件的事件信息存储的节点所对应的精度槽序列号。利用事件的事件标识和该事件的事件信息存储的节点所对应的精度槽序列号可生成该事件的时间信息存储的节点的节点标识。比如,节点标识=事件标识×10000+精度槽序列号。例如,事件标识为10021,精度槽序列号为0022,则节点标识为100210022。
利用事件标识和精度槽序列号生成节点标识,可保证节点标识的唯一性。在后续接收事件应答消息时,又可根据事件应答消息中的节点标识定位节点所对应的插槽号,以及定位节点的位置。
在步骤S107中,将第二目标事件的事件信息存储入第二目标节点中。
其中,第二目标节点为时间轮中一个精度槽对应的红黑树的节点。事件信息包括节点标识。具体地,可根据第二目标事件的绝对超时时间,确定目标精度槽。目标精度槽为第二目标事件的事件信息存储对应的精度槽,即第二目标事件的时间信息存储的节点所在的红黑树对应的精度槽。根据第二目标节点的节点标识,确定第二目标节点。第二目标节点位于目标精度槽对应的红黑树中。将第二目标事件的事件信息存储入第二目标节点中。
其中,事件信息可包括事件的数据结构体或指向事件数据结构体的指针。若存储在红黑树的节点中的事件信息包括的是指向事件数据结构体的指针,则该指针占用的内存空间非常小,可节约大量存储资源。比如,在64位操作系统中指针的大小为8字节,能够节省大量存储资源。
在步骤S108中,发送指示第二目标事件的事件请求消息。
其中,事件请求消息包括第二目标节点的节点标识。具体的,可在事件请求消息的报文中的特定位置设置第二目标节点的节点标识。对应地,与事件请求消息对应的事件应答消息的报文中设置节点标识的位置,应与事件请求消息的报文中设置节点标识的位置一致。比如,可在事件请求消息的报文的报文头设置第二目标节点的节点标识。
本申请实施例还提供了一种事件处理装置。图7为本申请一实施例提供的一种事件处理装置的结构示意图。如图7所示,该事件处理装置200可包括接收模块201、查询模块202和处理模块203。
接收模块201用于接收事件应答消息;
查询模块202用于响应事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点。
其中,节点用于存储事件信息。时间轮包括多个时间槽,每个时间槽对应设置有两个以上的红黑树。
具体地,每个时间槽包括两个以上精度槽,每个精度槽对应设置有一个红黑树。
处理模块203用于删除第一目标节点,并更新第一目标红黑树,第一目标红黑树为第一目标节点所属的红黑树。
在本申请实施例中,时间轮的每个时间槽对应设置有两个以上的红黑树。基于事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,将第一目标节点删除,并更新删除第一目标节点后的红黑树,以完成事件处理流程。红黑树具有从根节点到叶子节点的最长的可能路径不多于最短的可能路径的两倍长的特性,在红黑树中查找和删除节点查找所需的路径长度更短,所花费的时间也更短。尤其是在存储事件信息的节点的数量巨大的情况下,能够进一步缩短查找和删除节点查找所需的路径和花费的时间,从而提高超时处理机制的处理效率。
在一些示例中,事件应答消息包括第一目标事件对应的节点标识。查询模块202具体用于根据第一目标事件对应的节点标识,确定第一目标精度槽,在第一目标精度槽对应的红黑树中确定第一目标节点。
其中,第一目标精度槽为第一目标事件存储对应的精度槽。
在另一些示例中,查询模块202具体用于对第一目标红黑树进行遍历,将第一目标红黑树中存储有绝对超时时间早于当前时间的事件的事件信息的节点作为第一目标节点。
其中,第一目标红黑树包括上一次线程循环的时间与当前时间之间的时间段对应的精度槽中的红黑树,以及当前时间对应的精度槽的红黑树。
图8为本申请另一实施例提供的一种事件处理装置的结构示意图。图8与图7的不同之处在于,事件处理装置200还可包括存储操作模块204、发送模块205和标识生成模块206。
存储操作模块204用于获取第二目标事件的时间信息,将第二目标事件的事件信息存储入第二目标节点中。
其中,第二目标节点为时间轮中一个精度槽对应的红黑树的节点。
在一些示例中,存储操作模块204可具体用于:根据第二目标事件的绝对超时时间,确定目标精度槽,目标精度槽为第二目标事件的事件信息存储对应的精度槽;根据第二目标节点的节点标识,确定第二目标节点,第二目标节点位于目标精度槽对应的红黑树中;将第二目标事件的时间信息存储入第二目标节点中。
发送模块205用于发送指示第二目标事件的事件请求消息。
标识生成模块206用于为第二目标事件分配事件标识,事件标识具有唯一性,以及,基于第二目标事件的事件标识和第二目标事件的绝对超时时间,生成第二目标节点的节点标识。
其中,事件信息包括节点标识。事件请求消息包括第二目标节点的节点标识。
在一些示例中,标识生成模块206具体用于:基于第二目标事件占用线程的线程序列号和预设的启动线程数目,为第二目标事件分配事件标识。
上述实施例中的事件信息可包括事件的数据结构体或指向事件的数据结构体的指针。
图9为本申请实施例中一种事件处理设备的硬件结构示意图。如图9所示,事件处理设备300包括存储器301、处理器302及存储在存储器301上并可在处理器302上运行的计算机程序。
在一个示例中,上述处理器302可以包括中央处理器(CPU),或者特定集成电路(ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器301可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器301可包括HDD、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器301可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器301可在终端热点开启事件处理设备300的内部或外部。在特定实施例中,存储器301是非易失性固态存储器。在特定实施例中,存储器301包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器302通过读取存储器301中存储的可执行程序代码来运行与可执行程序代码对应的计算机程序,以用于实现上述实施例中事件处理方法。
在一个示例中,事件处理设备300还可包括通信接口303和总线304。其中,如图9所示,存储器301、处理器302、通信接口303通过总线304连接并完成相互间的通信。
通信接口303,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。也可通过通信接口303接入输入设备和/或输出设备。
总线304包括硬件、软件或两者,将事件处理设备300的部件彼此耦接在一起。举例来说而非限制,总线304可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线304可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本申请一实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时可实现上述实施例中的事件处理方法。
需要明确的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于装置实施例、设备实施例和计算机可读存储介质实施例而言,相关之处可以参见方法实施例的说明部分。本申请并不局限于上文所描述并在图中示出的特定步骤和结构。本领域的技术人员可以在领会本申请的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。并且,为了简明起见,这里省略对已知方法技术的详细描述。
本领域技术人员应能理解,上述实施例均是示例性而非限制性的。在不同实施例中出现的不同技术特征可以进行组合,以取得有益效果。本领域技术人员在研究附图、说明书及权利要求书的基础上,应能理解并实现所揭示的实施例的其他变化的实施例。在权利要求书中,术语“包括”并不排除其他装置或步骤;不定冠词“一个”不排除多个;术语“第一”、“第二”用于标示名称而非用于表示任何特定的顺序。权利要求中的任何附图标记均不应被理解为对保护范围的限制。权利要求中出现的多个部分的功能可以由一个单独的硬件或软件模块来实现。某些技术特征出现在不同的从属权利要求中并不意味着不能将这些技术特征进行组合以取得有益效果。
Claims (18)
1.一种事件处理方法,其特征在于,包括:
接收事件应答消息;
响应所述事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,所述节点用于存储事件信息,其中,所述时间轮包括多个时间槽,每个所述时间槽对应设置有两个以上的所述红黑树;
删除所述第一目标节点,并更新第一目标红黑树,所述第一目标红黑树为所述第一目标节点所属的所述红黑树;
其中,每个所述时间槽包括两个以上精度槽,每个所述精度槽对应设置有一个所述红黑树。
2.根据权利要求1所述的方法,其特征在于,所述事件应答消息包括第一目标事件对应的节点标识;
所述响应所述事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,包括:
根据所述第一目标事件对应的节点标识,确定第一目标精度槽,在所述第一目标精度槽对应的所述红黑树中确定所述第一目标节点,
其中,所述第一目标精度槽为所述第一目标事件存储对应的所述精度槽。
3.根据权利要求1所述的方法,其特征在于,所述响应所述事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,包括:
对第一目标红黑树进行遍历,将所述第一目标红黑树中存储有绝对超时时间早于当前时间的事件的事件信息的节点作为所述第一目标节点,
其中,所述第一目标红黑树包括上一次线程循环的时间与所述当前时间之间的时间段对应的所述精度槽中的所述红黑树,以及所述当前时间对应的所述精度槽的所述红黑树。
4.根据权利要求1所述的方法,其特征在于,在所述接收事件应答消息之前,还包括:
获取第二目标事件的时间信息,将所述第二目标事件的事件信息存储入第二目标节点中,所述第二目标节点为所述时间轮中一个所述精度槽对应的所述红黑树的节点;
发送指示所述第二目标事件的事件请求消息。
5.根据权利要求4所述的方法,其特征在于,在所述获取第二目标事件的时间信息之后,还包括:
为所述第二目标事件分配事件标识,所述事件标识具有唯一性;
基于所述第二目标事件的所述事件标识和所述第二目标事件的绝对超时时间,生成所述第二目标节点的节点标识,
其中,所述事件信息包括所述节点标识,所述事件请求消息包括所述第二目标节点的所述节点标识。
6.根据权利要求5所述的方法,其特征在于,所述将所述第二目标事件的事件信息存储入第二目标节点中,包括:
根据所述第二目标事件的所述绝对超时时间,确定目标精度槽,所述目标精度槽为所述第二目标事件的事件信息存储对应的所述精度槽;
根据第二目标节点的所述节点标识,确定第二目标节点,所述第二目标节点位于所述目标精度槽对应的所述红黑树中;
将所述第二目标事件的时间信息存储入所述第二目标节点中。
7.根据权利要求5所述的方法,其特征在于,为所述第二目标事件分配事件标识,包括:
基于所述第二目标事件占用线程的线程序列号和预设的启动线程数目,为所述第二目标事件分配事件标识。
8.根据权利要求1至7中任意一项所述的方法,其特征在于,所述事件信息包括事件的数据结构体或指向事件的数据结构体的指针。
9.一种事件处理装置,其特征在于,包括:
接收模块,用于接收事件应答消息;
查询模块,用于响应所述事件应答消息,在时间轮对应的多个红黑树的节点中查找第一目标节点,所述节点用于存储事件信息,其中,所述时间轮包括多个时间槽,每个所述时间槽对应设置有两个以上的所述红黑树;
处理模块,用于删除所述第一目标节点,并更新第一目标红黑树,所述第一目标红黑树为所述第一目标节点所属的所述红黑树;
其中,每个所述时间槽包括两个以上精度槽,每个所述精度槽对应设置有一个所述红黑树。
10.根据权利要求9所述的装置,其特征在于,所述事件应答消息包括第一目标事件对应的节点标识;
所述查询模块具体用于:
根据所述第一目标事件对应的节点标识,确定第一目标精度槽,在所述第一目标精度槽对应的所述红黑树中确定所述第一目标节点,
其中,所述第一目标精度槽为所述第一目标事件存储对应的所述精度槽。
11.根据权利要求9所述的装置,其特征在于,所述查询模块具体用于:
对第一目标红黑树进行遍历,将所述第一目标红黑树中存储有绝对超时时间早于当前时间的事件的事件信息的节点作为所述第一目标节点,
其中,所述第一目标红黑树包括上一次线程循环的时间与所述当前时间之间的时间段对应的所述精度槽中的所述红黑树,以及所述当前时间对应的所述精度槽的所述红黑树。
12.根据权利要求9所述的装置,其特征在于,还包括:
存储操作模块,用于获取第二目标事件的时间信息,将所述第二目标事件的事件信息存储入第二目标节点中,所述第二目标节点为所述时间轮中一个所述精度槽对应的所述红黑树的节点;
发送模块,用于发送指示所述第二目标事件的事件请求消息。
13.根据权利要求12所述的装置,其特征在于,还包括:
标识生成模块,用于为所述第二目标事件分配事件标识,所述事件标识具有唯一性,以及,基于所述第二目标事件的所述事件标识和所述第二目标事件的绝对超时时间,生成所述第二目标节点的节点标识,
其中,所述事件信息包括所述节点标识,所述事件请求消息包括所述第二目标节点的所述节点标识。
14.根据权利要求13所述的装置,其特征在于,所述存储操作模块具体用于:
根据所述第二目标事件的所述绝对超时时间,确定目标精度槽,所述目标精度槽为所述第二目标事件的事件信息存储对应的所述精度槽;
根据第二目标节点的所述节点标识,确定第二目标节点,所述第二目标节点位于所述目标精度槽对应的所述红黑树中;
将所述第二目标事件的时间信息存储入所述第二目标节点中。
15.根据权利要求13所述的装置,其特征在于,所述标识生成模块具体用于:
基于所述第二目标事件占用线程的线程序列号和预设的启动线程数目,为所述第二目标事件分配事件标识。
16.根据权利要求9至15中任意一项所述的装置,其特征在于,所述事件信息包括事件的数据结构体或指向事件的数据结构体的指针。
17.一种事件处理设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任意一项所述的事件处理方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任意一项所述的事件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102110.4A CN111324621B (zh) | 2020-02-19 | 2020-02-19 | 事件处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102110.4A CN111324621B (zh) | 2020-02-19 | 2020-02-19 | 事件处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324621A CN111324621A (zh) | 2020-06-23 |
CN111324621B true CN111324621B (zh) | 2023-06-20 |
Family
ID=71163636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010102110.4A Active CN111324621B (zh) | 2020-02-19 | 2020-02-19 | 事件处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324621B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181614B (zh) * | 2020-09-14 | 2024-04-19 | 中国银联股份有限公司 | 任务超时监控方法、装置、设备、系统及存储介质 |
CN112131223B (zh) * | 2020-09-24 | 2024-02-02 | 曙光网络科技有限公司 | 流量分类统计方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799961A (zh) * | 2012-06-21 | 2012-11-28 | 深圳市汇川控制技术有限公司 | 定时器管理系统及方法 |
CN107102892A (zh) * | 2017-03-28 | 2017-08-29 | 北京华云网际科技有限公司 | 定时器的处理方法和装置 |
CN107634993A (zh) * | 2017-09-05 | 2018-01-26 | 腾讯科技(深圳)有限公司 | 一种信息推送事件处理方法、装置及电子设备 |
CN109889406A (zh) * | 2019-02-02 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
-
2020
- 2020-02-19 CN CN202010102110.4A patent/CN111324621B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799961A (zh) * | 2012-06-21 | 2012-11-28 | 深圳市汇川控制技术有限公司 | 定时器管理系统及方法 |
CN107102892A (zh) * | 2017-03-28 | 2017-08-29 | 北京华云网际科技有限公司 | 定时器的处理方法和装置 |
CN107634993A (zh) * | 2017-09-05 | 2018-01-26 | 腾讯科技(深圳)有限公司 | 一种信息推送事件处理方法、装置及电子设备 |
CN109889406A (zh) * | 2019-02-02 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
倪桂强 ; 陈志龙 ; 姜劲松 ; 马遥 ; .基于多线程和缓存机制的定时器管理算法.计算机仿真.2015,(第12期),第603-607页. * |
喻诗祥 ; 顾乃杰 ; 张旭 ; 曹越 ; .一种多核ARM平台下用户态定时器的实现.计算机工程.2015,第41卷(第01期),第19-23页. * |
许健 ; 于鸿洋 ; .Linux下一种高性能定时器池的实现.电子技术应用.2012,第38卷(第12期),第114-119页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111324621A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324621B (zh) | 事件处理方法、装置、设备及存储介质 | |
CN111111214A (zh) | 一种游戏存档的处理方法、装置及系统 | |
CN113641841B (zh) | 数据编码方法、图数据存储方法、图数据查询方法及装置 | |
EP3534266A1 (en) | Method, apparatus and system for prefetching data | |
CN111859033B (zh) | Ip库查询方法、装置及ip库压缩方法、装置 | |
CN114647698A (zh) | 数据同步方法、装置及计算机存储介质 | |
CN113132267B (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN112231069A (zh) | 事务标识的处理方法、装置及电子设备 | |
CN112286706B (zh) | 安卓应用的应用信息远程快速获取方法及相关设备 | |
CN112559482B (zh) | 一种基于分布式的二进制数据分类处理方法和系统 | |
CN110750498A (zh) | 对象访问方法、装置及存储介质 | |
CN117349291A (zh) | 一种数据库主键短id生成方法、电子设备和介质 | |
CN110109867A (zh) | 改进在线模式检测的方法、装置和计算机程序产品 | |
CN112052144A (zh) | 信息管理方法、装置、电子设备及存储介质 | |
CN116760571A (zh) | 资产识别方法、装置、电子设备及存储介质 | |
CN111046077A (zh) | 数据的获取方法及装置、存储介质、终端 | |
CN112685064B (zh) | 设备标识的处理方法以及装置、存储介质、电子装置 | |
CN107315693B (zh) | 一种数据存储方法和装置 | |
CN115390847A (zh) | 日志处理方法及装置、计算机可读存储介质、终端 | |
CN112256700A (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN112995900B (zh) | 一种sim卡分配方法、装置、服务器和计算机可读存储介质 | |
CN115086001B (zh) | 采样数据缓存方法、装置及存储介质 | |
CN114327992A (zh) | 事件处理方法、装置、设备及存储介质 | |
CN110674156B (zh) | 多机房数据的同步方法、计算设备及计算机存储介质 | |
CN111107536B (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 |