一种定时器实现方法及装置、调度器、存储介质制造方法及图纸

技术编号:20992278 阅读:23 留言:0更新日期:2019-04-29 22:20
本发明专利技术实施例公开了一种定时器实现方法,该方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。本发明专利技术实施例还公开了一种定时器实现装置、调度器和存储介质。

A Timer Implementation Method and Device, Scheduler and Storage Media

The embodiment of the invention discloses a timer implementation method, which includes: acquiring the attribute value of the timer node according to the preset cross-linked list structure; the preset cross-linked list structure represents the data storage structure of the timer node; and inserting the attribute value representing the timer node into the preset cross-linked list structure according to the preset cross-linked list structure. The timer is generated by the position corresponding to the value of the row field and the column field of the preset cross-linked list structure, in which the row field of the preset cross-linked list structure represents the first automaton number and the column field of the preset cross-linked list structure represents the time point. The embodiment of the invention also discloses a timer implementation device, a dispatcher and a storage medium.

【技术实现步骤摘要】
一种定时器实现方法及装置、调度器、存储介质
本专利技术涉及网络通信
,尤其涉及一种定时器实现方法及装置、调度器、存储介质。
技术介绍
事件驱动模型是基于NIO(非阻塞IO)的单线程并发处理模型,相对于基于多线程并发处理模型,事件驱动模型具有更高的可靠性,不会因为负荷增大导致吞吐量降低。事件驱动模型主要由调度器、事件队列、自动机队列以及事件循环构成,为适应现实应用场景,还需要定时器,以完成超时相关处理。然而现有事件驱动模型中并没有涉及如何高效设计定时器,调度器对定时器的管理比较耗时。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种定时器实现方法及装置、调度器、存储介质,能有效提升调度器对定时器的管理效率。本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供一种定时器实现方法,应用于事件驱动模型中,所述方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。在上述方案中,所述生成所述定时器之后,所述方法还包括:计算当前时间距离前次扫描的第一时间间隔;所述当前时间是指相对凌晨零点的偏移量;在所述第一时间间隔内,获取所述定时器中与所述当前时间对应的至少一个第一定时器节点;更新所述至少一个第一定时器节点的第一待超时天数,所述第一待超时天数属于所述定时器中的定时器节点的属性值;当所述更新后的至少一个第一定时器节点的第一待超时天数为0时,触发定时事件。在上述方案中,所述生成所述定时器之后,所述方法还包括:根据预设的待销毁自动机号,删除所述定时器中的至少一个第二定时器节点。在上述方案中,所述生成所述定时器之后,所述方法还包括:检索所述定时器中的定时器节点,将所述定时器节点对应的超时事件放入事件队列;获取所述事件队列中的第一事件;获取自动机队列;当所述第一事件的目的对应所述自动机队列时,将所述第一事件给对应的自动机处理;接收所述自动机的请求,根据所述请求创建新的定时器节点。第二方面,本专利技术实施例提供一种定时器实现装置,应用事件驱动模型中,所述装置包括:属性获取单元,用于根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;插入单元,根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。第三方面,本专利技术实施例提供一种调度器,应用于事件驱动模型中,所述调度器至少包括:处理器、存储器、通信接口,和用于连接所述处理器、存储器以及通信接口的总线;所述处理器用于执行所述存储器中存储的定时器实现程序,以实现如上述第一方面所述的方法。第四方面,本专利技术实施例提供一种计算机可读存储介质,应用于事件驱动模型中,其上存储有定时器实现程序,应用于事件驱动模型中,所述定时器实现程序被处理器执行时实现如上述第一方面所述的方法。本专利技术实施例提供了一种定时器实现方法及装置、调度器、存储介质,应用于事件驱动模型中,该方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。也就是说,本专利技术实施例提出的一种定时器实现方法,通过预设十字链表结构来存储定时器节点,提升了调度器对定时器的管理效率。附图说明图1为事件驱动模型的结构图;图2为本专利技术实施例中提出的一种带有定时器的事件驱动模型的结构图;图3为本专利技术实施例提出的一种定时器实现方法的流程图一;图4为本专利技术实施例提供的一种示例性地定时器预设的十字链路结构图;图5为本专利技术实施例提出的一种定时器实现方法的流程示意图;图6为本专利技术实施例提出的一种定时器实现方法的流程图二;图7为基于双映射数据结构的定时器扫描算法流程示意图;图8为本专利技术实施例提出的一种定时器队列扫描方法的流程示意图;图9为本专利技术实施例提出的一种定时器实现方法的流程图三;图10为本专利技术实施例提供的一种删除指定自动机的所有未超时定时器节点的算法流程示意图;图11为本专利技术实施例提供的一种定时器实现方法流程图四;图12为本专利技术实施例事件驱动模型结构中事件循环的流程示意图;图13为不带定时器模块的事件驱动模型结构中事件循环的流程示意图;图14为本专利技术实施例提出的一种定时器实现装置图;图15为本专利技术实施例提出的一种定时器队列扫描装置图;图16为本专利技术实施例提出的一种定时器节点删除装置图;图17为本专利技术实施例提出的一种事件循环装置图;图18为本专利技术实施例提出的一种调度器的组成结构示意图。具体实施方式事件驱动模型主要由调度器、事件队列、自动机队列、以及事件循环构成。图1为事件驱动模型的结构图,如图1所示,调度器为系统的核心,通过不断执行事件循环,带动整个框架各模块运行,同时调度器还充当中介者角色,调度事件队列、网络、自动机队列间的相互调用。然而,在现实应用中,特别是通信协议处理中,自动机除了需要处理来自网络或其他自动机的事件外,还需要设置定时器来处理未按期执行的超时事件。典型场景如:主叫发送一个消息到网络,等待被叫返回响应消息,此时就需要设置定时器,使得调度器可根据被叫在定时器设置的时间内是否响应消息而执行相应操作,包括:被叫在时间内未响应消息时,构造相应的超时事件以通知主叫。图2为本专利技术实施例中提出的一种带有定时器的事件驱动模型的结构图,如图2所示,事件驱动模型结构图不仅包括调度器、事件队列、自动机队列,还包括定时器队列,其中定时器队列为十字链表结构,十字链表结构的横轴为时间轴,代表时间触发的定时时长;纵轴为自动机轴,代表处理事件的自动机号。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。实施例一本专利技术实施例提供了一种定时器实现方法,图3为本专利技术实施例提出的一种定时器实现方法的流程图一,如图3所示,在本专利技术的实施例中,定时器实现方法可以包括以下步骤:S101、根据预设的十字链表结构,获取定时器节点的属性值;其中预设的十字链表结构表征定时器节点的数据存储结构。在本专利技术的实施例中,调度器根据自动机的请求来构造定时器节点,定时器的实现装置即调度器。调度器在构造了定时器节点后,会根据预设的十字链表结构,获取定时器节点的属性值,其中预设的十字链表结构表征定时器节点的数据存储结构。需要说明的是,自动机在软件开发领域内通常被称为有限状态机,用自动机的方式处理问题(即将执行的程式分为自动机的步骤,以及各步骤间只透过显式的状态传递资讯)是事件驱动程式设计中必要的一部份。示例性地,在网络通信领域,自动机可以理解为不同的通本文档来自技高网...

【技术保护点】
1.一种定时器实现方法,应用于事件驱动模型中,其特征在于,所述方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。

【技术特征摘要】
1.一种定时器实现方法,应用于事件驱动模型中,其特征在于,所述方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。2.根据权利要求1所述的方法,其特征在于,所述数据存储结构中包括第一自动机号、待超时天数和时间点,所述根据预设的十字链表结构,获取所述定时器节点的属性值,包括:根据所述预设的十字链表结构,获取所述定时器节点的第一自动机号、第一待超时天数和第一时间点。3.根据权利要求2所述的方法,其特征在于,所述根据所述预设的十字链表结构,获取所述定时器节点的第一自动机号、第一待超时天数和第一时间点,包括:将所述自动机对应的自动机号与第一阈值取模,获取所述定时器节点对应所述预设的十字链表结构的行字段的所述第一自动机号;其中,所述第一阈值表征所述预设的十字链表结构的纵向长度;将定时时长与第二阈值取整,获取所述定时器节点在所述数据存储结构中的所述第一待超时天数;其中,所述定时时长为所述自动机处理事件的待触发时间,所述第二阈值表征所述预设的十字链表结构的横向长度;将所述定时时长与当前时间求和后与第二阈值取模,获取所述定时器节点对应所述预设的十字链表结构的列字段中的所述第一时间点;其中所述当前时间是指相对凌晨零点的偏移量。4.根据权利要求1所述的方法,其特征在于,所述生成所述定时器之后,所述方法还包括:计算当前时间距离前次扫描的第一时间间隔;所述当前时间是指相对凌晨零点的偏移量;在所述第一时间间隔内,获取所述定时器中与所述当前时间对应的至少一个第一定时器节点;更新所述至少一个第一定时器节点的第一待超时天数,所述第一待超时天数属于所述定时器中的定时器节点的属性值;当所述更新后的至少一个第一定时器节点的第一待超时天数为0时,触发定时事件。5.根据权利要求4所述的方法,其特征在于,所述在所述第一时间间隔内,获取所述定时器中与所述当前时间对应的至少一个第一定时器节点,包括:在所述第一时间间隔内,更新所述当前时间;当更新后的当前时间小于第二阈值时,获取所述定时器中与更新后的当前时间对应的至少一个第一定时器节点;其中,所述第二阈值表征所述预设的十字链表结构的横向长度。6.根据权利要求5所述的方法,其特征在于,所述在所述第一时间间隔内,更新所述当前时间,包括:根据所述当前时间和第一预设时间间隔,获取第二时间点;当所述第二时间点不小于第二阈值时,将所述当前时间更新为0。7.根据权利要求5所述的方法,其特征在于,所述在所述第一时间间隔内,更新所述当前时间,包括:根据所述当前时间和第二预设时间间隔,获取第二时间点;当所述第二时间点小于第二阈值时,且当所述定时器中不存在与所述第二时间点对应的至少一个第一定时器节点时,根据所述第二时间点和所述第二预设时间间隔,获取第三时间点;将所...

【专利技术属性】
技术研发人员:王宏志
申请(专利权)人:咪咕文化科技有限公司中国移动通信集团有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1