[发明专利]在线状态检测方法及装置有效
申请号: | 201810598949.4 | 申请日: | 2018-06-12 |
公开(公告)号: | CN108809761B | 公开(公告)日: | 2020-09-04 |
发明(设计)人: | 李绣君 | 申请(专利权)人: | 威创集团股份有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26 |
代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 唐维虎 |
地址: | 510000 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 在线 状态 检测 方法 装置 | ||
本申请公开了一种在线状态检测方法及装置,所述在线状态检测方法应用于服务器,所述服务器配置有用于保存终端的信息的多个第一队列,所述第一队列的数量为预设的检测超时时间与检测间隔时长的商,所述方法包括:每间隔所述检测间隔时长循环依次将所述多个第一队列中的一个作为目标第一队列;针对所述目标第一队列中记录的每个终端,获取未接收到该终端发送的心跳包的时长作为无心跳包时长,根据所述检测超时时间和所述无心跳包时长判断该终端是否保持在线;当检测到新上线的终端时,将所述新上线的终端的信息存储到当前的目标第一队列中。本申请公开的在线状态检测方法,能够降低在线状态检测过程中的CPU占用率,提高检测效率。
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种在线状态检测方法及装置。
背景技术
在互联网中,一般是基于互联网协议发送数据请求,以请求获取数据信息。
当前检测终端在线的方式是,在终端登录时,服务端将新上线的终端的信息添加到一个队列的末端,采用一个队列来保存所有终端的信息。每个终端会在间隔一个检测间隔时长向服务器发送心跳包,而服务器会每隔一个检测间隔时长去检测所有终端未接收到终端心跳包的时间。如果服务器检测到未接收到心跳包的时间大于检测超时时间,则判断该终端为离线状态。
现有的这种终端检测方式中,服务器在每次检测时,都需要检测所有保存在队列中的终端的心跳间隔时间,因此,这种终端检测方法对CPU的资源消耗非常高。尤其是当终端的数量较多时,这种终端检测方法对CPU的资源消耗更是明显,使得CPU占用率极高,检测过程进行缓慢。
发明内容
为了克服现有技术中的上述不足,本申请的目的在于提供一种在线状态检测方法,应用于服务器,所述服务器配置有用于保存终端的信息的多个第一队列,所述第一队列的数量为预设的检测超时时间与检测间隔时长的商,所述方法包括:
每间隔所述检测间隔时长循环依次将所述多个第一队列中的一个作为目标第一队列;
针对所述目标第一队列中记录的每个终端,获取未接收到该终端发送的心跳包的时长作为无心跳包时长,根据所述检测超时时间和所述无心跳包时长判断该终端是否保持在线;
当检测到新上线的终端时,将所述新上线的终端的信息存储到当前的目标第一队列中。
可选地,所述在线状态检测方法中,所述服务器内还配置有第二队列,所述第二队列的成员与所述第一队列一一对应;
所述每间隔所述检测间隔时长循环依次将所述多个第一队列中的一个作为目标第一队列的步骤包括,
每隔所述检测间隔时长循环依次将所述第二队列中的一个成员作为目标第二队列成员,将所述目标第二队列成员所对应的所述第一队列作为所述目标第一队列。
可选地,所述在线状态检测方法中,所述第二队列包括头部成员和尾部成员;
所述每间隔所述检测间隔时长循环依次将所述第二队列中的一个成员作为目标第二队列成员的步骤包括:
指针对象每隔所述检测间隔时长依次指向一个所述第二队列的成员,将所述指针对象指向的所述第二队列的成员作为所述目标第二队列成员,将所述目标第二队列成员对应的所述第一队列作为所述目标第一队列;
当所述指针对象指向所述尾部成员时,所述指针对象在间隔所述检测间隔时长后重新指向所述头部成员。
可选地,根据所述检测超时时间和所述无心跳包时长判断该终端是否保持在线的步骤为:
当所述无心跳包时长超过所述检测超时时间时,则判断该终端不是保持在线状态;
当所述无心跳包时长没有超过所述检测超时时间时,则判断该终端保持在线状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于威创集团股份有限公司,未经威创集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810598949.4/2.html,转载请声明来源钻瓜专利网。