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)的单线程并发处理模型,相对于基于多线程并发处理模型,事件驱动模型具有更高的可靠性,不会因为负荷增大导致吞吐量降低。事件驱动模型主要由调度器、事件队列、自动机队列以及事件循环构成,为适应现实应用场景,还需要定时器,以完成超时相关处理。然而现有事件驱动模型中并没有涉及如何高效设计定时器,调度器对定时器的管理比较耗时。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种定时器实现方法及装置、调度器、存储介质,能有效提升调度器对定时器的管理效率。本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供一种定时器实现方法,应用于事件驱动模型中,所述方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。在上述方案中,所述生成所述定时器之后,所述方法还包括:计算当前时间距离前次扫描的第一时间间隔;所述当前时间是指相对凌晨零点的偏移量;在所述第一时间间隔内,获取所述定时器中与所述当前时间对应的至少一个第一定时器节点;更新所述至少一个第一定时器节点的第一待超时天数,所述第一待超时天数属于所述定时 ...
【技术保护点】
1.一种定时器实现方法,应用于事件驱动模型中,其特征在于,所述方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。
【技术特征摘要】
1.一种定时器实现方法,应用于事件驱动模型中,其特征在于,所述方法包括:根据预设的十字链表结构,获取定时器节点的属性值;其中所述预设的十字链表结构表征所述定时器节点的数据存储结构;根据所述预设的十字链表结构,将所述属性值表征的所述定时器节点插入到与所述预设的十字链表结构的行字段和列字段的值对应的位置,生成所述定时器;其中,所述预设的十字链表结构的行字段表征第一自动机号,所述预设的十字链表结构的列字段表征时间点。2.根据权利要求1所述的方法,其特征在于,所述数据存储结构中包括第一自动机号、待超时天数和时间点,所述根据预设的十字链表结构,获取所述定时器节点的属性值,包括:根据所述预设的十字链表结构,获取所述定时器节点的第一自动机号、第一待超时天数和第一时间点。3.根据权利要求2所述的方法,其特征在于,所述根据所述预设的十字链表结构,获取所述定时器节点的第一自动机号、第一待超时天数和第一时间点,包括:将所述自动机对应的自动机号与第一阈值取模,获取所述定时器节点对应所述预设的十字链表结构的行字段的所述第一自动机号;其中,所述第一阈值表征所述预设的十字链表结构的纵向长度;将定时时长与第二阈值取整,获取所述定时器节点在所述数据存储结构中的所述第一待超时天数;其中,所述定时时长为所述自动机处理事件的待触发时间,所述第二阈值表征所述预设的十字链表结构的横向长度;将所述定时时长与当前时间求和后与第二阈值取模,获取所述定时器节点对应所述预设的十字链表结构的列字段中的所述第一时间点;其中所述当前时间是指相对凌晨零点的偏移量。4.根据权利要求1所述的方法,其特征在于,所述生成所述定时器之后,所述方法还包括:计算当前时间距离前次扫描的第一时间间隔;所述当前时间是指相对凌晨零点的偏移量;在所述第一时间间隔内,获取所述定时器中与所述当前时间对应的至少一个第一定时器节点;更新所述至少一个第一定时器节点的第一待超时天数,所述第一待超时天数属于所述定时器中的定时器节点的属性值;当所述更新后的至少一个第一定时器节点的第一待超时天数为0时,触发定时事件。5.根据权利要求4所述的方法,其特征在于,所述在所述第一时间间隔内,获取所述定时器中与所述当前时间对应的至少一个第一定时器节点,包括:在所述第一时间间隔内,更新所述当前时间;当更新后的当前时间小于第二阈值时,获取所述定时器中与更新后的当前时间对应的至少一个第一定时器节点;其中,所述第二阈值表征所述预设的十字链表结构的横向长度。6.根据权利要求5所述的方法,其特征在于,所述在所述第一时间间隔内,更新所述当前时间,包括:根据所述当前时间和第一预设时间间隔,获取第二时间点;当所述第二时间点不小于第二阈值时,将所述当前时间更新为0。7.根据权利要求5所述的方法,其特征在于,所述在所述第一时间间隔内,更新所述当前时间,包括:根据所述当前时间和第二预设时间间隔,获取第二时间点;当所述第二时间点小于第二阈值时,且当所述定时器中不存在与所述第二时间点对应的至少一个第一定时器节点时,根据所述第二时间点和所述第二预设时间间隔,获取第三时间点;将所...
【专利技术属性】
技术研发人员:王宏志,
申请(专利权)人:咪咕文化科技有限公司,中国移动通信集团有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。