[发明专利]一种服务器的定时实现方法及装置有效
| 申请号: | 201710724288.0 | 申请日: | 2017-08-22 |
| 公开(公告)号: | CN109426554B | 公开(公告)日: | 2020-10-09 |
| 发明(设计)人: | 乔春雷 | 申请(专利权)人: | 中移(杭州)信息技术有限公司;中国移动通信集团公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
| 地址: | 311100 浙江省杭州市*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 服务器 定时 实现 方法 装置 | ||
本申请实施例中公开了一种服务器的定时实现方法及装置,该方法为从设置的空闲任务集合中选取一个空闲任务设置为定时任务;将设置的时间索引数组的指针当前指向的数组下标,作为定时启动下标;计算定时时长与时间区间的时长的第一比值,并将基于第一比值和定时启动下标的加和确定的数组下标,作为定时终止下标;将定时任务添加到定时终止下标对应的数组元素中,确定时间索引数组的指针指向定时终止下标时,将定时终止下标对应的数组元素中包含的各个定时任务添加到设置的执行队列中;对执行队列中的所有定时任务进行并行执行,将执行结束的定时任务回收到空闲任务集合中。这样,提高了系统性能,简化了计算复杂度,保证了定时精度。
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务器的定时实现方法及装置。
背景技术
随着计算机技术的发展,为满足人们日益增长的网络服务需求,大容量高并发服务器应运而生。大容量高并发服务器通常通过心跳机制维持自身与客户端之间的TCP长连接,以及与客户端之间的消息推送。
以永远在线服务器为例,参阅图1a所示,为永远在线系统的示意图,永远在线系统包括永远在线服务器(Always-On Gateway,AOG)和永远在线客户端(Always-On Engine,AOE)。AOG基于TCP/IP长连接技术,与AOE进行TCP长连接以及消息推送。为维持AOG与AOE之间的TCP长连接和消息推送,AOG需要对每一个AOE通过定时器维持两个定时任务,即AOE心跳定时任务和消息推送应答定时任务。
其中,AOE心跳定时任务为:AOE每隔5分钟向AOG发送一个心跳包,AOG通过定时器建立一个6分钟的定时任务,并判断在6分钟内是否收到AOE发送的心跳包,若是,则停止之前的定时任务,并重新启动新的定时任务,否则,释放AOG与AOE的TCP长连接。
其中,消息推送应答定时任务为:当AOG向AOE推送消息时,AOG通过定时器维护一个30s的定时任务,并判断在30s内是否收到AOE返回的推送应答消息,若是,则判定推送正常,停止30s的定时任务,否则,判定推送异常,释放AOG与AOE之间的TCP长连接。
现有技术下,大容量高并发服务器采用定时器进行定时时,主要采用以下方式实现定时:
以Java.util.Timer定时器为例,参阅图1b所示,Java.util.Timer定时器包括定时任务、任务队列和定时线程三部分。所有向Java.util.Timer定时器中添加的定时任务都会被插入到任务队列中。任务队列采用最小二叉堆对各个定时任务进行优先级排序;定时线程每次从任务队列中取出第一个任务,确定定时任务达到指定时长时,执行相应的任务。
但是,采用这种定时方式存在诸多弊端。首先,需要频繁启动以及停止定时任务,这会导致定时任务对象的频繁分配和释放,进而生成大量的内存碎片,降低系统性能;其次,采用二叉堆对定时任务进行排序,当定时任务的数量达到百万量级时,计算的复杂度极高,降低了定时效率,无法满足系统的性能要求,进一步地,定时任务采用单线程执行,即每一次仅执行一个定时任务,无法并行执行多个定时任务,这对降低整体定时的精度和系统性能。
发明内容
本申请实施例提供一种服务器的定时实现方法及装置,用于在大容量高并发服务器通过定时器实现定时时,并行处理定时任务,提高定时处理效率,保证定时精度。
本申请实施例提供的具体技术方案如下:
第一方面,一种服务器的定时实现方法,包括:
确定接收到包含定时时长的定时指令,从设置的空闲任务集合包含的空闲任务中,选取一个空闲任务,并将空闲任务设置为定时任务;
将设置的时间索引数组的指针当前指向的数组下标,作为定时任务的定时启动下标,其中,时间索引数组的指针始终指向对应当前的时间区间设置的数组下标,定时任务的定时启动下标表示:定时任务是在定时下标对应的时间区间内设置的;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中移(杭州)信息技术有限公司;中国移动通信集团公司,未经中移(杭州)信息技术有限公司;中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710724288.0/2.html,转载请声明来源钻瓜专利网。





