一种定时任务的执行方法及计算设备与流程

文档序号:33290217发布日期:2023-02-28 18:57阅读:来源:国知局

技术特征:
1.一种定时任务的执行方法,其特征在于,包括:确定时间轮定时器的循环指针指向第一时间槽的第一时间,其中,所述第一时间槽为所述循环指针当前指向的时间槽的下一个时间槽;在当前时间大于等于所述第一时间的情况下,将所述时间轮定时器的循环指针指向第一时间槽;获取所述时间轮定时器的触发轮次;根据所述时间轮定时器的触发轮次,触发所述第一时间槽中的第一任务列表中的定时任务执行,其中,所述第一任务列表中的各个定时任务的触发轮次与所述时间轮定时器的触发轮次相同。2.根据权利要求1所述的方法,其特征在于,所述触发所述第一任务列表中的定时任务执行,包括:遍历所述第一任务列表,触发执行目标定时任务;其中,所述目标定时任务为第一任务列表中触发时间小于等于当前时间的定时任务。3.根据权利要求2任一项所述的方法,其特征在于,所述遍历所述第一任务列表,触发执行目标定时任务后,所述方法还包括:确定所述时间轮定时器的循环指针指向第二时间槽的第二时间,其中,所述第二时间槽为所述第一时间槽的下一个时间槽;在当前时间小于所述第二时间的情况下,确定所述时间轮定时器需要休眠的第三时间,所述第三时间为毫秒级别的时间;在所述第三时间大于等于1毫秒的情况下,使用系统函数sleep触发所述时间轮定时器休眠所述第三时间;在所述第三时间小于1毫秒的情况下,使用pause指令触发所述时间轮定时器进行休眠。4.根据权利要求3所述的方法,其特征在于,所述使用pause指令触发所述时间轮定时器进行休眠,包括:等待固定的时间间隔后,若所述当前时间小于所述第二时间,继续触发所述时间轮定时器进行休眠。5.根据权利要求1-4任一项所述的方法,其特征在于,所述触发所述第一时间槽中的第一任务列表中的定时任务执行之前,所述方法还包括:接收定时任务,所述定时任务中包含所述定时任务的延时执行时间;根据所述定时任务的延时执行时间,确定所述定时任务的触发时间;根据所述定时任务的触发时间,确定所述定时任务的触发轮次、所述定时任务对应的第一时间槽;根据所述定时任务的触发轮次,将所述定时任务存储到所述第一时间槽中的第一任务列表中。6.根据权利要求5所述的方法,其特征在于,所述根据所述定时任务的触发轮次,将所述定时任务存储到所述第一时间槽中的第一任务列表中,包括:根据所述定时任务的触发轮次,从所述第一时间槽中的至少一个任务列表中确定第一任务列表;
在所述第一时间槽中存在第一任务列表的情况下,将所述定时任务存储到所述第一任务列表中;在所述第一时间槽中不存在第一任务列表的情况下,在所述第一时间槽中增加第一任务列表,将所述定时任务存储到所述第一任务列表中。7.根据权利要求1-6任一项所述的方法,其特征在于,所述触发所述第一任务列表中的定时任务执行以后,所述方法还包括:遍历所述第一时间槽中的第二任务列表,所述第二任务列表中的各个定时任务的触发轮次与所述时间轮定时器的上一个触发轮次相同;若所述第二任务列表中存在剩余定时任务,触发执行所述第二任务列表中的剩余定时任务;删除所述第一时间槽中的所述第二任务列表。8.根据权利要求1-7任一项所述的方法,其特征在于,所述确定时间轮定时器的循环指针指向第一时间槽的第一时间,包括:确定所述时间轮定时器的循环指针指向第一时间槽时,所述循环指针的转动次数;根据所述循环指针的转动次数和所述时间轮定时器的单位时间,确定所述第一时间;其中,所述时间轮定时器的单位时间为所述循环指针转动一次需要的时间。9.根据权利要求1-8任一项所述的方法,其特征在于,所述第一任务列表或所述第二任务列表为双向链表。10.一种计算设备,其特征在于,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,使所述计算设备执行如权利要求1-9任一项所述的方法。

技术总结
一种定时任务的执行方法,包括:确定时间轮定时器的循环指针指向第一时间槽的第一时间,所述第一时间槽为所述循环指针当前指向的时间槽的下一个时间槽;在当前时间大于等于所述第一时间的情况下,将所述定时器的循环指针指向第一时间槽;获取所述时间轮定时器的触发轮次;触发所述第一任务列表中的至少一个定时任务执行,其中,所述第一任务列表中的各个定时任务的触发轮次与所述时间轮定时器的触发轮次相同。对时间轮定时器内的定时任务按照触发轮次进行分层管理,提升了时间轮定时器任务触发性能,使得时间轮定时器可以支持更大量的定时任务。定时任务。定时任务。


技术研发人员:石林灵
受保护的技术使用者:超聚变数字技术有限公司
技术研发日:2022.11.16
技术公布日:2023/2/27
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1