CN113726595B - 超时客户端的检测方法、装置、电子设备及存储介质 - Google Patents
超时客户端的检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113726595B CN113726595B CN202110902002.XA CN202110902002A CN113726595B CN 113726595 B CN113726595 B CN 113726595B CN 202110902002 A CN202110902002 A CN 202110902002A CN 113726595 B CN113726595 B CN 113726595B
- Authority
- CN
- China
- Prior art keywords
- time
- packet
- target
- client
- timeout
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Electric Clocks (AREA)
Abstract
本发明实施例提供了一种超时客户端的检测方法、装置、电子设备及存储介质,该方法包括:在服务器与多个客户端连接时,根据目标时长和连接时刻确定目标时段,将目标时段均分为至少两个连续的时间区间,连接时刻为目标时段的初始时刻,每个时间区间对应于一初始时刻和一终止时刻,且每个时间区间对应于一个分组;在接收到客户端发送的心跳包时,根据心跳包的目标接收时间和各时间区间对应的初始时刻和终止时刻,确定客户端对应的分组;在到达进行超时检测的目标时刻时,根据目标时长、目标时刻以及每个分组对应的终止时刻,对每个分组对应的客户端进行超时检测。本发明可以减少轮询检测次数,提升检测效率,同时可保留有效客户端。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种超时客户端的检测方法、装置、电子设备及存储介质。
背景技术
服务器在与客户端交互的过程中,可以为每个客户端启动线程,以向各客户端发送心跳包,客户端在接收到心跳包之后,可以回复相应的心跳包以向服务器上报客户端的状态。
服务器在接收到客户端反馈的心跳包之后,可以根据接收心跳包的时间来检测客户端是否回复超时,在客户端数量较多的情况下,服务器针对大规模的客户端,轮询一遍所用时间会过长,处理效率低且容易发生心跳超时误报。
发明内容
鉴于上述问题,提出了本发明实施例,以便提供一种克服上述问题或者至少部分地解决上述问题的一种超时客户端的检测方法和相应的一种超时客户端的检测装置。
第一方面,本发明实施例提供一种超时客户端的检测方法,应用于服务器,包括:
在服务器与多个客户端建立连接时,根据目标时长和连接时刻确定一目标时段,并将所述目标时段均分为K个连续的时间区间,所述连接时刻为所述目标时段的初始时刻,每个所述时间区间对应于一初始时刻和一终止时刻,且每个所述时间区间对应于一个分组,K为大于或者等于2的整数,所述分组用于进行不同客户端的区分;
在接收到所述客户端发送的心跳包的情况下,根据所述心跳包对应的目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,确定所述客户端对应的分组,所述目标接收时间基于实际接收时间确定;
在到达进行超时检测的目标时刻时,根据所述目标时长、所述目标时刻以及每个分组对应的终止时刻,对每个分组对应的所述客户端进行超时检测,以对超时客户端进行清理。
第二方面,本发明实施例提供一种超时客户端的检测装置,应用于服务器,包括:
第一处理模块,用于在服务器与多个客户端建立连接时,根据目标时长和连接时刻确定一目标时段,并将所述目标时段均分为K个连续的时间区间,所述连接时刻为所述目标时段的初始时刻,每个所述时间区间对应于一初始时刻和一终止时刻,且每个所述时间区间对应于一个分组,K为大于或者等于2的整数,所述分组用于进行不同客户端的区分;
第一确定模块,用于在接收到所述客户端发送的心跳包的情况下,根据所述心跳包对应的目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,确定所述客户端对应的分组,所述目标接收时间基于实际接收时间确定;
检测模块,用于在到达进行超时检测的目标时刻时,根据所述目标时长、所述目标时刻以及每个分组对应的终止时刻,对每个分组对应的所述客户端进行超时检测,以对超时客户端进行清理。
第三方面,本发明实施例提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现第一方面所述的超时客户端的检测方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现第一方面所述的超时客户端的检测方法的步骤。
本发明实施例至少包括以下技术效果:
在服务器与客户端连接时,根据目标时长和连接时刻确定一以连接时刻为初始时刻的目标时段,将目标时段划分为至少两个连续的时间区间,以使每个时间区间对应于一初始时刻和终止时刻,并针对每个时间区间确定一用于区分不同客户端的分组,在接收到客户端发送的心跳包时,根据心跳包对应的目标接收时间与各时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组,并在到达进行超时检测的目标时刻时,以分组为单位对客户端进行超时检测,以对超时客户端进行清理,可以减少轮询检测次数,减少大规模客户端的情况下轮询进行客户端超时检测造成的检测耗时,提升检测效率,同时可保留有效客户端。
附图说明
图1表示本发明实施例提供的超时客户端的检测方法的示意图之一;
图2表示本发明实施例提供的超时客户端的检测方法的示意图之二;
图3表示本发明实施例提供的超时客户端的检测方法的示意图之三;
图4表示本发明实施例提供的超时客户端的检测方法的一具体实施流程图;
图5表示本发明实施例提供的超时客户端的检测装置的示意图;
图6表示本发明实施例提供的电子设备框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
服务器与多个客户端进行交互时,服务器与客户端之间形成通信连接,服务器可以向客户端发送心跳包以使得客户端获取服务器的状态,相应的,多个客户端也可以分别向服务器发送心跳包,以使得服务器获取各客户端的状态,且服务器或者客户端在发送心跳包可以按照特定的时间间隔发送。
本发明实施例提供的超时客户端的检测方法针对客户端向服务器发送心跳包,以向服务器汇报客户端状态的场景,下面对本发明实施例提供的应用于服务器的超时客户端的检测方法进行介绍,参见图1所示,包括如下步骤:
步骤101、在服务器与多个客户端建立连接时,根据目标时长和连接时刻确定一目标时段,并将目标时段均分为K个连续的时间区间,连接时刻为目标时段的初始时刻,每个时间区间对应于一初始时刻和一终止时刻,且每个时间区间对应于一个分组,K为大于或者等于2的整数,分组用于进行不同客户端的区分。
在服务器与多个客户端建立通信连接的情况下,服务器可以接收每个客户端按照特定的时间间隔发送的心跳包,以实现通过心跳包获取客户端的状态。服务器在与多个客户端建立连接时,服务器可以向客户端发送心跳包,服务器可以将连接时刻作为初始时刻,等待客户端反馈的心跳包的到达。其中,服务器可以基于超时经验设定一目标时长(可以理解为服务器自定义的用于进行超时检测的时长),由于目标时长为服务器根据超时经验设定,因此服务器可以根据需求对目标时长进行时长调整。
服务器在与多个客户端建立连接时,可以根据目标时长和连接时刻确定一目标时段,即以连接时刻作为初始时刻,在初始时刻的基础上顺延目标时长确定一目标时段,即目标时段的终止时刻基于连接时刻以及目标时长确定。
在确定目标时段之后,可以将目标时段均分为K个连续的时间区间,以使得每个时间区间对应于一初始时刻和一终止时刻,且各时间区间对应的时长相等,这里的K为大于或者等于2的整数。针对相邻的两个时间区间而言,前一个时间区间的终止时刻可以作为后一个时间区间的初始时刻。
例如,针对K的取值为3的情况,可以将目标时段划分为三等份(即根据目标时段确定3个时间区间),针对目标时段对应于1分钟时长的情况,每个时间区间对应的时长为20秒,且第一个时间区间对应的初始时刻为连接时刻。
针对每一个时间区间而言,其对应于一分组,这里的分组为客户端分组,具体可以理解为用于进行不同客户端的区分的分组。
步骤102、在接收到客户端发送的心跳包的情况下,根据心跳包对应的目标接收时间与K个时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组,目标接收时间基于实际接收时间确定。
服务器在接收到客户端发送的心跳包的情况下,获取心跳包对应的实际接收时间(为实际接收时刻),然后基于实际接收时间进行计算,确定心跳包对应的目标接收时间(目标接收时刻),在确定目标接收时间之后,可以根据心跳包的目标接收时间与K个时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组。即,根据目标接收时间与不同时间区间分别对应的时段之间的关系,确定客户端对应的分组。
针对每个客户端而言,需要多次向服务器发送心跳包以汇报客户端状态,服务器针对每次接收到的心跳包,均基于目标接收时间确定客户端对应的分组,可以实现针对每一个客户端进行分组更新,客户端的分组更新即为客户端在不同分组的迁移。
步骤103、在到达进行超时检测的目标时刻时,根据目标时长、目标时刻以及每个分组对应的终止时刻,对每个分组对应的客户端进行超时检测,以对超时客户端进行清理。
在确定客户端对应的分组之后,在到达用于进行超时检测的目标时刻时,可以基于目标时长、目标时刻(即当前时刻)以及每个分组对应的终止时刻,以分组为单位,对客户端是否超时进行检测。其中,用于进行超时检测的目标时刻可以基于预设的检测时间间隔确定,服务器可以配置检测时间间隔,如每隔90秒进行一次检测,且检测对应的起点时刻可以为服务器与多个客户端建立通信连接的时刻(其中,检测对应的起点时刻并不是用于进行检测的时刻,而是用于确定进行检测的目标时刻的时刻)。在每次到达用于进行超时检测的目标时刻时,需要以分组为单位进行客户端超时检测。针对检测对应的起点时刻为连接时刻的情况,为了提高检测效率,首次检测对应的目标时刻可以大于K个时间区间中最后一个时间区间对应的终止时刻,即,首次检测对应的目标时刻与检测的起点时刻(本实施例中以连接时刻为例)之间的差值大于目标时长。进一步的,为了保证检测的高效性,相邻两次检测之间的检测时间间隔可以大于目标时长,当然并不局限于此。
通过以分组为单位对客户端进行超时检测,可以减少检测次数,提升超时检测效率,且在检测出超时客户端时,需要对超时客户端进行清理,以保留有效客户端。
本发明上述实施过程,在服务器与客户端连接时,根据目标时长和连接时刻确定一以连接时刻为初始时刻的目标时段,将目标时段划分为至少两个连续的时间区间,以使每个时间区间对应于一初始时刻和终止时刻,并针对每个时间区间确定一用于区分不同客户端的分组,在接收到客户端发送的心跳包时,根据心跳包对应的目标接收时间与各时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组,并在到达进行超时检测的目标时刻时,以分组为单位对客户端进行超时检测,以对超时客户端进行清理,可以减少轮询检测次数,减少大规模客户端的情况下轮询进行客户端超时检测造成的检测耗时,提升检测效率,同时可保留有效客户端。
在本发明一可选实施例中,根据目标时长、目标时刻以及每个分组对应的终止时刻,对每个分组对应的客户端进行超时检测,包括:
针对每个分组,计算目标时刻与当前分组对应的终止时刻的时间差值是否大于第一时长阈值,第一时长阈值基于目标时长和网络延迟时长确定;
在时间差值大于第一时长阈值时,对当前分组内的客户端进行超时标记。
在根据目标时长、目标时刻以及每个分组对应的终止时刻进行客户端超时检测时,需要针对每个分组,计算目标时刻(即,当前时刻)与当前分组对应的终止时刻的时间差值,检测计算得到的时间差值是否大于第一时长阈值,这里的第一时长阈值基于目标时长和网络延迟时长确定,网络延迟时长根据各分组内的客户端的心跳包发送、接收时间确定。
需要说明的是,由于目标时长为服务器自定义的用于进行超时检测的时长,在进行超时检测时,可以根据目标时刻(检测时刻)与分组对应的终止时刻之间的差值与目标时长的关系,确定分组内的客户端是否超时。由于目标时长为一经验值,可以采用网络延迟时长对目标时长进行修正,即基于目标时长和网络延迟时长确定第一时长阈值,第一时长阈值为目标时长的修正值。
针对每个分组,在计算得到的目标时刻与当前分组对应的终止时刻的时间差值大于第一时长阈值时,对当前分组内的客户端进行超时标记。
其中,对当前分组内的客户端进行超时标记之后,还包括:
确定当前分组内的客户端为超时客户端;或者
对当前分组内的客户端继续进行超时检测,在当前分组内的至少部分客户端对应的超时标记次数大于预设次数时,确定当前分组内超时标记次数大于预设次数的客户端为超时客户端。
针对当前分组,在对当前分组内的客户端进行超时标记之后,可以直接将当前分组内的客户端确定为超时客户端。也可以对当前分组内的客户端继续进行超时检测,针对当前分组内的客户端,若至少部分客户端对应的超时标记次数大于预设次数时,可以将标记次数大于预设次数的客户端确定为超时客户端。
需要说明的是,在对当前分组内的客户端进行超时标记之后,可以将当前分组转移至超时过期组内,在下一次超时检测时,可以继续对当前分组内的客户端进行超时检测,若在两次检测的间隔内接收到当前分组内的某个客户端(如客户端1)发送的心跳包,则可以将该客户端移出超时过期组。若未接收到某个客户端发送的心跳包,则当前分组继续保持在超时过期组内。在总检测次数大于预设次数且当前分组仍保持在超时过期组内时,则将当前分组内的客户端确定为超时客户端。
其中,预设次数为服务器预先设定,通过设置预设次数,并且在超时标记次数大于预设次数时确定超时客户端,可以避免仅进行一次超时标记就确定超时客户端,进而避免确定超时客户端的误操作。通过将满足要求的客户端移出超时过期组,可以实现保留有效客户端。
本发明上述实施过程,通过针对每个分组,获取用于进行超时检测的目标时刻与当前分组的终止时刻的时间差值,基于时间差值与第一时长阈值的关系确定是否对当前分组内的客户端进行超时标记,在进行超时标记之后,可以直接将当前分组内的客户端确定为超时客户端,以实现快速进行超时客户端的检测,也可以继续对当前分组内的客户端进行超时检测,在客户端对应的超时标记次数大于预设次数时确定超时客户端,可以避免确定超时客户端的误操作。
通过将满足要求的客户端移出超时过期组,可以实现保留有效客户端;通过基于目标时长和网络延迟时长确定第一时长阈值,可以考虑网络延时,避免由于未考虑网络延迟造成错误的超时判断。
在本发明一可选实施例中,在到达用于进行超时检测的目标时刻时,如图2所示,该方法还包括:
步骤201、针对每个分组,获取当前分组内各客户端对应的心跳包接收时间和对应的心跳包发送时间,将最大的心跳包接收时间和最小的心跳包发送时间的时间差值确定为传输时长,其中,针对至少两次心跳包接收时间均位于当前分组内的客户端,仅获取最新的心跳包接收时间和心跳包发送时间。
在到达用于进行超时检测的目标时刻时,可以确定对应的第一时长阈值,其中第一时长阈值基于目标时长以及网络延迟时长确定,目标时长为已知量,因此需要确定对应的网络延迟时长。而网络延迟时长根据各分组内的客户端的心跳包发送时间、接收时间确定,因此,需要针对对应的每个分组,获取客户端的心跳包发送时间、接收时间。
需要说明的是,针对每个用于进行超时检测的目标时刻,在到达目标时刻时,需要获取对应的网络延迟时长,然后基于网络延迟时长和目标时长,确定对应的第一时长阈值。不同的目标时刻,其对应的分组相区别,因此网络延迟时长可以不同。
针对当前分组,在获取当前分组内各客户端对应的心跳包接收时间和对应的心跳包发送时间之后,可以根据最大的心跳包接收时间和最小的心跳包发送时间确定当前分组对应的传输时长。
需要说明的是,若某个客户端对应的至少两次心跳包接收时间均位于该分组内,则仅需要获取最新一次的心跳包接收时间和心跳包发送时间。针对当前分组,确定出最大的心跳包接收时间(即时间点最晚的接收时间)和最小的心跳包发送时间(即时间点最早的发送时间)之后,可以根据最大接收时间和最小发送时间的时间差值,确定当前分组对应的传输时长。
在针对每个分组确定对应的传输时长之后,可以执行步骤202。
步骤202、基于预设计算规则,根据每个分组对应的传输时长进行计算,获取网络延迟时长。
在获取每个分组对应的传输时长之后,可以根据每个分组对应的传输时长,采用预设计算规则进行计算以获取网络延迟时长,其中,预设计算规则可以为方差计算规则,在通过预设计算规则进行计算时,可以针对K个分组,计算K个传输时长的均值,确定传输时长均值。针对每个传输时长,计算传输时长与传输时长均值之差的平方值,对K个平方值进行累加,得到的值除以K,即可得到计算结果,然后对计算结果进行开平方处理,将所得到的值确定为网络延迟时长。
步骤203、根据网络延迟时长和目标时长之和,确定第一时长阈值。
在确定网络延迟时长之后,可以根据网络延迟时长和目标时长之和确定第一时长阈值,实现基于网络延迟时长对目标时长进行修正。
本发明上述实施过程,通过考虑网络延时,基于网络延迟时长和目标时长之和,确定第一时长阈值,基于第一时长阈值判断客户端是否需要进行超时标记,可以实现基于网络延迟时间对基于经验设定的目标时长进行修正。
在本发明一可选实施例中,在接收到客户端发送的心跳包的情况下,根据心跳包对应的目标接收时间与K个时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组,包括:
在接收到客户端首次发送的心跳包的情况下,根据目标接收时间与K个时间区间分别对应的初始时刻和终止时刻之间的关系,在K个时间区间对应的K个分组内确定客户端对应的分组或者新创建至少一个分组以确定客户端对应的分组,其中,新创建的每个分组对应的时长为时间区间对应的时长,至少一个分组与K个分组在时间上相连续,在新创建至少一个分组的情况下,取消K个分组中排序靠前的至少一个分组;
在接收到客户端非首次发送的心跳包的情况下,根据目标接收时间检测客户端对应的分组是否发生变化,若未发生变化,保持当前分组状态,若发生变化,对客户端进行分组更新。
在接收到客户端发送的心跳包,根据心跳包对应的目标接收时间与K个时间区间分别对应的初始时刻和终止时刻之间的关系,对客户端确定其对应的分组时,需要判断客户端是否是首次发送心跳包。
针对接收到客户端首次发送的心跳包的情况,可以根据目标接收时间,在K个时间区间对应的K个分组内确定客户端对应的分组。由于每个时间区间对应于一初始时刻以及一终止时刻,可以根据目标接收时间,在K个时间区间内,确定包含目标接收时间的时间区间,并将确定出的时间区间对应的分组,确定为客户端对应的分组。
若K个时间区间均不包含目标接收时间,则新创建至少一个分组,在新创建的至少一个分组中确定客户端对应的分组。新创建分组的过程即为新创建时间区间的过程,即,以目标时段的终止时刻为起点,创建时间区间。针对新创建的至少一个分组,与目标时段对应的K个分组(时间区间)在时间上相连续,即新创建的至少一个分组中的第一个分组的起始时刻为目标时段的终止时刻。针对新创建的每个分组而言,其对应的时长即为时间区间对应的时长。在新创建至少一个分组时,需要针对K个分组中排序靠前的至少一个分组,进行取消,即,新创建的分组的数量与取消的分组的数量相同,保持分组的个数为K个。例如,在新创建两个分组后,将目标时段对应的K个分组中排序第一、排序第二的分组取消。
在接收到客户端非首次发送的心跳包的情况下,需要根据目标接收时间以及K个时间区间分别对应的初始时刻和终止时刻,检测客户端对应的分组是否发生变化,若客户端对应的分组未发生变化,即针对同一客户端,此次心跳包的目标接收时间与上一次心跳包的目标接收时间位于同一分组对应的时间区间内,则保持当前分组状态。若客户端对应的分组发生变化,则对客户端进行分组更新,以保证客户端处于正确的分组内。
上述实施过程,通过对接收到的心跳包区分是否为客户端首次发送的心跳包,针对不同的情况,采用相应的策略确定客户端对应的分组,可以基于情况区分保证客户端对应分组确定的准确性。
其中,对客户端进行分组更新,包括:
判断当前对应的K个分组中是否存在与目标接收时间对应的目标分组;
若存在目标分组,将客户端更新至目标分组;
若不存在目标分组,根据目标接收时间新创建至少一个分组并在新创建的至少一个分组中确定目标分组,将客户端更新至目标分组;
其中,新创建的每个分组对应的时长为时间区间对应的时长,至少一个分组与K个分组在时间上相连续,在新创建至少一个分组的情况下,取消K个分组中排序靠前的至少一个分组。
针对接收到客户端非首次发送的心跳包的情况,可以判断当前对应的K个分组中是否存在与目标接收时间对应的目标分组,即判断当前对应的K个时间区间中是否存在包含目标接收时间的时间区间,若存在,则将该时间区间对应的分组确定为目标分组,将客户端更新至目标分组,即,在客户端之前对应的分组中将客户端移除,将客户端添加至目标分组内,实现客户端的迁移,也可以理解为解除客户端与之前分组的对应关系,建立客户端与目标分组的对应关系。
若K个分组中不存在与目标接收时间对应的目标分组,则新创建至少一个分组,在新创建的至少一个分组中确定目标分组。新创建分组的过程即为新创建时间区间的过程,即,以目标时段的终止时刻为起点,创建时间区间。针对新创建的至少一个分组,与目标时段对应的K个分组(时间区间)在时间上相连续,即新创建的至少一个分组中的第一个分组的起始时刻为目标时段的终止时刻。针对新创建的每个分组而言,其对应的时长即为时间区间对应的时长。在新创建至少一个分组时,需要针对K个分组中排序靠前的至少一个分组,进行取消,即,新创建的分组的数量与取消的分组的数量相同,保持分组的个数为K个。
在新创建的至少一个分组中确定目标分组时,即根据目标接收时间在新创建的至少一个分组对应的至少一个时间区间(每个时间区间的初始时刻和终止时刻为已知状态)内,确定包含目标接收时间的时间区间,进而确定目标分组,然后将客户端更新至目标分组。
上述实施过程,在对客户端进行分组更新时,若当前对应的K个分组中包括目标分组,则将客户端更新至目标分组,若当前对应的K个分组中不包括目标分组,则新创建至少一个分组并在新创建的至少一个分组中确定目标分组,将客户端更新至目标分组,可以基于不同的情况采用对应的策略确定目标分组,实现客户端的迁移。
在本发明一可选实施例中,根据心跳包对应的目标接收时间与K个时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组之前,参见图3所示,该方法还包括:
步骤301、获取客户端发送的心跳包的实际接收时间。
在根据心跳包对应的目标接收时间与K个时间区间分别对应的初始时刻以及终止时刻之间的关系,确定客户端所在的分组之前,需要首先获取客户端发送的心跳包对应的实际接收时间,即获取实际接收心跳包的时间。
步骤302、判断时间区间对应的时长是否大于或者等于第二时长阈值。
在获取心跳包对应的实际接收时间之后,需要判断时间区间对应的时长是否大于或者等于第二时长阈值,时间区间对应的时长即为目标时长与K的比值,第二时长阈值为服务器设定。若是则执行步骤303,否则执行步骤304。
步骤303、在时间区间对应的时长大于或者等于第二时长阈值的情况下,基于第一策略更新实际接收时间,确定目标接收时间。
在时间区间对应的时长大于或者等于第二时长阈值的情况下,采用第一策略对实际接收时间进行更新,通过对实际接收时间进行更新,可以获取目标接收时间。
步骤304、在时间区间对应的时长小于第二时长阈值的情况下,基于第二策略更新实际接收时间,确定目标接收时间。
在时间区间对应的时长小于第二时长阈值的情况下,采用第二策略对实际接收时间进行更新,通过对实际接收时间进行更新,可以获取目标接收时间。
其中,第二时长阈值为1秒;基于第一策略更新实际接收时间,确定目标接收时间,包括:
在实际接收时间的基础上延后1秒,并忽略毫秒数值,确定目标接收时间;
基于第二策略更新实际接收时间,确定目标接收时间,包括:
获取实际接收时间对应的实际毫秒数值,计算实际毫秒数值除以时间区间对应的时长所得到的余数,获取实际毫秒数值与所得余数的差值,并与时间区间对应的时长相加得到目标毫秒数值;
将实际接收时间对应的实际毫秒数值更新为目标毫秒数值,确定目标接收时间。
本实施例中,第二时长阈值为1秒,在时间区间对应的时长大于或者等于1秒时,基于第一策略更新实际接收时间,获取目标接收时间,在时间区间对应的时长小于1秒时,基于第二策略更新实际接收时间,获取目标接收时间。其中,1秒为毫秒和秒的临界点,若时间区间大于1秒则不需要考虑毫秒,即采用第一策略更新实际接收时间,若时间区间小于1秒则需要考虑毫秒,即采用第二策略更新实际接收时间。
针对基于第一策略更新实际接收时间的情况,具体为:在实际接收时间的基础延后1秒,针对延后1秒后对应的时间忽略毫秒数值,将此时对应的时间确定为目标接收时间。例如,心跳包的实际接收时间为11点20分10秒18毫秒,在实际接收时间的基础上延后1S,获取对应的时间11点20分11秒18毫秒,然后忽略毫秒数值,确定目标接收时间为11点20分11秒。由于时间区间对应的时长大于或者等于1秒,此时时间最小值可以按照秒来计算,因此忽略毫秒数值。
针对基于第二策略更新实际接收时间的情况,具体为:获取实际接收时间对应的实际毫秒数值,然后将实际毫秒数值除以时间区间对应的时长,获取余数,针对获取的余数,计算实际毫秒数值与所得余数之差,根据得到的差值与时间区间对应的时长之和,确定目标毫秒数值。在确定目标毫秒数值之后,将实际接收时间的实际毫秒数值替换为目标毫秒数值,以获取目标接收时间。例如,心跳包的实际接收时间为11点20分10秒18毫秒,时间区间对应的时长为10毫秒,则18毫秒除以10求余,余数是8,18减去8加上10得出20,则目标毫秒数值为20,则目标接收时间为11点20分10秒20毫秒。由于时间区间对应的时长小于1秒,此时时间最小值可以按照毫秒来计算。
本发明上述实施过程,在时间区间对应的时长大于或者等于1秒时,忽略毫秒数值,基于对应的算法对实际接收时间进行更新获取目标接收时间,在时间区间对应的时长小于1秒时,考虑毫秒数值,基于对应的算法对实际接收时间进行更新获取目标接收时间,可以实现基于不同的情况采用对应的措施确定目标接收时间。
下面通过一具体实例对本发明实施例提供的超时客户端的检测方法进行介绍,参见图4所示,包括如下步骤:
步骤401、在服务器与多个客户端建立连接时,以连接时刻11点10分0秒为初始时刻,根据目标时长1分钟确定一目标时段,将目标时段均分为6个连续的时间区间,每个时间区间对应于一初始时刻和一终止时刻,且每个时间区间对应于一个用于进行客户端区分的分组。
步骤402、在接收到客户端发送的心跳包的情况下,获取客户端发送的心跳包的实际接收时间。
步骤403、由于时间区间对应的时长10秒大于1秒,在实际接收时间的基础上延后1秒,并忽略毫秒数值,确定目标接收时间。然后执行步骤404或者步骤405。
步骤404、若接收到的心跳包为客户端首次发送的心跳包,根据目标接收时间与6个时间区间分别对应的初始时刻和终止时刻之间的关系,在6个时间区间对应的6个分组内确定客户端对应的分组或者新创建至少一个分组以确定客户端对应的分组,然后执行步骤406。
步骤405、若接收到的心跳包为客户端非首次发送的心跳包,根据目标接收时间检测客户端对应的分组是否发生变化,若未发生变化,保持当前分组状态,若发生变化,对客户端进行分组更新,然后执行步骤406。
步骤406、在到达进行超时检测的目标时刻时,针对每个分组,计算所目标时刻与当前分组对应的终止时刻的时间差值与第一时长阈值(60.01秒)的关系。其中。第一时长阈值基于目标时长60秒和网络延迟时长0.01秒确定。
步骤407、在时间差值大于第一时长阈值时,对当前分组内的客户端进行超时标记。
步骤408、确定当前分组内的客户端为超时客户端;或者对当前分组内的客户端继续进行超时检测,在当前分组内的至少部分客户端对应的超时标记次数大于预设次数时,确定当前分组内超时标记次数大于预设次数的客户端为超时客户端。
上述实施流程,在服务器与客户端建立连接时,设置一目标时段,将目标时段按照时间刻度进行划分,进而实现客户端分组,可以以分组为单位进行超时检测,可以提升检测效率,同时可保留有效客户端。
以上为本发明实施例提供的超时客户端的检测方法的整体实施流程,在服务器与客户端连接时,根据目标时长和连接时刻确定一以连接时刻为初始时刻的目标时段,将目标时段划分为至少两个连续的时间区间,以使每个时间区间对应于一初始时刻和终止时刻,并针对每个时间区间确定一用于区分不同客户端的分组,在接收到客户端发送的心跳包时,根据心跳包对应的目标接收时间与各时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组,并在到达进行超时检测的目标时刻时,以分组为单位对客户端进行超时检测,以对超时客户端进行清理,可以减少轮询检测次数,减少大规模客户端的情况下轮询进行客户端超时检测造成的检测耗时,提升检测效率,同时可保留有效客户端。
进一步的,针对每个分组,在分组内的客户端对应的超时标记次数大于预设次数时,确定分组对应的客户端为超时客户端,可以避免确定超时客户端的误操作;通过将满足要求的客户端移出超时过期组,可以实现保留有效客户端;通过基于目标时长和网络延迟时长确定第一时长阈值,可以基于网络延时进行目标时长的修正。
通过对接收到的心跳包区分是否为客户端首次发送的心跳包,可以基于情况区分保证客户端对应分组确定的准确性;通过将时间区间对应的时长与第二时长阈值进行比较,基于比较结果确定对应的算法,可以实现基于不同的情况采用对应的措施确定目标接收时间。
本发明实施例提供一种超时客户端的检测装置,应用于服务器,参见图5所示,包括:
第一处理模块501,用于在服务器与多个客户端建立连接时,根据目标时长和连接时刻确定一目标时段,并将所述目标时段均分为K个连续的时间区间,所述连接时刻为所述目标时段的初始时刻,每个所述时间区间对应于一初始时刻和一终止时刻,且每个所述时间区间对应于一个分组,K为大于或者等于2的整数,所述分组用于进行不同客户端的区分;
第一确定模块502,用于在接收到所述客户端发送的心跳包的情况下,根据所述心跳包对应的目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,确定所述客户端对应的分组,所述目标接收时间基于实际接收时间确定;
检测模块503,用于在到达进行超时检测的目标时刻时,根据所述目标时长、所述目标时刻以及每个分组对应的终止时刻,对每个分组对应的所述客户端进行超时检测,以对超时客户端进行清理。
可选的,所述检测模块包括:
计算子模块,用于针对每个分组,计算所述目标时刻与当前分组对应的终止时刻的时间差值是否大于第一时长阈值,所述第一时长阈值基于所述目标时长和网络延迟时长确定;
标记子模块,用于在所述时间差值大于所述第一时长阈值时,对当前分组内的所述客户端进行超时标记。
可选的,所述检测模块还包括:
确定子模块,用于在所述标记子模块对当前分组内的所述客户端进行超时标记之后,确定当前分组内的所述客户端为超时客户端;或者
检测确定子模块,用于对当前分组内的所述客户端继续进行超时检测,在当前分组内的至少部分所述客户端对应的超时标记次数大于预设次数时,确定当前分组内超时标记次数大于预设次数的所述客户端为超时客户端。
可选的,在到达所述目标时刻时,该装置还包括:
第二处理模块,用于针对每个分组,获取当前分组内各所述客户端对应的心跳包接收时间和对应的心跳包发送时间,将最大的心跳包接收时间和最小的心跳包发送时间的时间差值确定为传输时长,其中,针对至少两次心跳包接收时间均位于当前分组内的客户端,仅获取最新的心跳包接收时间和心跳包发送时间;
第一获取模块,用于基于预设计算规则,根据每个分组对应的所述传输时长进行计算,获取所述网络延迟时长;
第二确定模块,用于根据所述网络延迟时长和所述目标时长之和,确定所述第一时长阈值。
可选的,所述第一确定模块包括:
第一处理子模块,用于在接收到所述客户端首次发送的心跳包的情况下,根据所述目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,在K个所述时间区间对应的K个分组内确定所述客户端对应的分组或者新创建至少一个分组以确定所述客户端对应的分组,其中,新创建的每个分组对应的时长为所述时间区间对应的时长,至少一个分组与K个分组在时间上相连续,在新创建至少一个分组的情况下,取消K个分组中排序靠前的至少一个分组;
第二处理子模块,用于在接收到所述客户端非首次发送的心跳包的情况下,根据所述目标接收时间检测所述客户端对应的分组是否发生变化,若未发生变化,保持当前分组状态,若发生变化,对所述客户端进行分组更新。
可选的,所述第二处理子模块包括:
判断单元,用于判断当前对应的K个分组中是否存在与所述目标接收时间对应的目标分组;
更新单元,用于若存在所述目标分组,将所述客户端更新至所述目标分组;
处理单元,用于若不存在所述目标分组,根据所述目标接收时间新创建至少一个分组并在新创建的至少一个分组中确定所述目标分组,将所述客户端更新至所述目标分组;
其中,新创建的每个分组对应的时长为所述时间区间对应的时长,至少一个分组与K个分组在时间上相连续,在新创建至少一个分组的情况下,取消K个分组中排序靠前的至少一个分组。
可选的,该装置还包括:
第二获取模块,用于在所述第一确定模块确定所述客户端对应的分组之前,获取所述客户端发送的心跳包的实际接收时间;
判断模块,用于判断所述时间区间对应的时长是否大于或者等于第二时长阈值;
第三确定模块,用于在所述时间区间对应的时长大于或者等于所述第二时长阈值的情况下,基于第一策略更新所述实际接收时间,确定所述目标接收时间;
第四确定模块,用于在所述时间区间对应的时长小于所述第二时长阈值的情况下,基于第二策略更新所述实际接收时间,确定所述目标接收时间。
可选的,所述第二时长阈值为1秒;
所述第三确定模块进一步用于:
在所述实际接收时间的基础上延后1秒,并忽略毫秒数值,确定所述目标接收时间;
所述第四确定模块进一步用于:
获取所述实际接收时间对应的实际毫秒数值,计算所述实际毫秒数值除以所述时间区间对应的时长所得到的余数,获取所述实际毫秒数值与所得余数的差值,并与所述时间区间对应的时长相加得到目标毫秒数值;
将所述实际接收时间对应的所述实际毫秒数值更新为所述目标毫秒数值,确定所述目标接收时间。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述超时客户端的检测方法实施例的各个过程,且能达到相同的技术效果。
参见图6,示出了一种电子设备的实体结构示意图。如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610、通信接口620以及存储器630通过通信总线640完成相互间的通信。电子设备可以为服务器,其中,处理器610可以调用存储器630中的逻辑指令,以执行如下方法:在服务器与多个客户端建立连接时,根据目标时长和连接时刻确定一目标时段,并将目标时段均分为K个连续的时间区间,连接时刻为目标时段的初始时刻,每个时间区间对应于一初始时刻和一终止时刻,且每个时间区间对应于一个分组,K为大于或者等于2的整数,分组用于进行不同客户端的区分;在接收到客户端发送的心跳包的情况下,根据所述心跳包对应的目标接收时间与K个时间区间分别对应的初始时刻和终止时刻之间的关系,确定客户端对应的分组,目标接收时间基于实际接收时间确定;在到达进行超时检测的目标时刻时,根据目标时长、目标时刻以及每个分组对应的终止时刻,对每个分组对应的客户端进行超时检测,以对超时客户端进行清理。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述超时客户端的检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种超时客户端的检测方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种超时客户端的检测方法,应用于服务器,其特征在于,包括:
在服务器与多个客户端建立连接时,根据目标时长和连接时刻确定一目标时段,并将所述目标时段均分为K个连续的时间区间,所述连接时刻为所述目标时段的初始时刻,每个所述时间区间对应于一初始时刻和一终止时刻,且每个所述时间区间对应于一个分组,K为大于或者等于2的整数,所述分组用于进行不同客户端的区分;
在接收到所述客户端发送的心跳包的情况下,根据所述心跳包对应的目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,确定所述客户端对应的分组,所述目标接收时间基于实际接收时间确定;
在到达进行超时检测的目标时刻时,根据所述目标时长、所述目标时刻以及每个分组对应的终止时刻,对每个分组对应的所述客户端进行超时检测,以对超时客户端进行清理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标时长、所述目标时刻以及每个分组对应的终止时刻,对每个分组对应的所述客户端进行超时检测,包括:
针对每个分组,计算所述目标时刻与当前分组对应的终止时刻的时间差值是否大于第一时长阈值,所述第一时长阈值基于所述目标时长和网络延迟时长确定;
在所述时间差值大于所述第一时长阈值时,对当前分组内的所述客户端进行超时标记。
3.根据权利要求2所述的方法,其特征在于,所述对当前分组内的所述客户端进行超时标记之后,还包括:
确定当前分组内的所述客户端为超时客户端;或者
对当前分组内的所述客户端继续进行超时检测,在当前分组内的至少部分所述客户端对应的超时标记次数大于预设次数时,确定当前分组内超时标记次数大于预设次数的所述客户端为超时客户端。
4.根据权利要求2所述的方法,其特征在于,在到达所述目标时刻时,还包括:
针对每个分组,获取当前分组内各所述客户端对应的心跳包接收时间和对应的心跳包发送时间,将最大的心跳包接收时间和最小的心跳包发送时间的时间差值确定为传输时长,其中,针对至少两次心跳包接收时间均位于当前分组内的所述客户端,仅获取最新的心跳包接收时间和心跳包发送时间;
基于预设计算规则,根据每个分组对应的所述传输时长进行计算,获取所述网络延迟时长;
根据所述网络延迟时长和所述目标时长之和,确定所述第一时长阈值。
5.根据权利要求1所述的方法,其特征在于,所述在接收到所述客户端发送的心跳包的情况下,根据所述心跳包对应的目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,确定所述客户端对应的分组,包括:
在接收到所述客户端首次发送的心跳包的情况下,根据所述目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,在K个所述时间区间对应的K个分组内确定所述客户端对应的分组或者新创建至少一个分组以确定所述客户端对应的分组,其中,新创建的每个分组对应的时长为所述时间区间对应的时长,至少一个分组与K个分组在时间上相连续,在新创建至少一个分组的情况下,取消K个分组中排序靠前的至少一个分组;
在接收到所述客户端非首次发送的心跳包的情况下,根据所述目标接收时间检测所述客户端对应的分组是否发生变化,若未发生变化,保持当前分组状态,若发生变化,对所述客户端进行分组更新。
6.根据权利要求5所述的方法,其特征在于,所述对所述客户端进行分组更新,包括:
判断当前对应的K个分组中是否存在与所述目标接收时间对应的目标分组;
若存在所述目标分组,将所述客户端更新至所述目标分组;
若不存在所述目标分组,根据所述目标接收时间新创建至少一个分组并在新创建的至少一个分组中确定所述目标分组,将所述客户端更新至所述目标分组;
其中,新创建的每个分组对应的时长为所述时间区间对应的时长,至少一个分组与K个分组在时间上相连续,在新创建至少一个分组的情况下,取消K个分组中排序靠前的至少一个分组。
7.根据权利要求1或5所述的方法,其特征在于,所述根据所述心跳包对应的目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,确定所述客户端对应的分组之前,还包括:
获取所述客户端发送的心跳包的实际接收时间;
判断所述时间区间对应的时长是否大于或者等于第二时长阈值;
在所述时间区间对应的时长大于或者等于所述第二时长阈值的情况下,基于第一策略更新所述实际接收时间,确定所述目标接收时间;
在所述时间区间对应的时长小于所述第二时长阈值的情况下,基于第二策略更新所述实际接收时间,确定所述目标接收时间。
8.根据权利要求7所述的方法,其特征在于,所述第二时长阈值为1秒;
所述基于第一策略更新所述实际接收时间,确定所述目标接收时间,包括:
在所述实际接收时间的基础上延后1秒,并忽略毫秒数值,确定所述目标接收时间;
所述基于第二策略更新所述实际接收时间,确定所述目标接收时间,包括:
获取所述实际接收时间对应的实际毫秒数值,计算所述实际毫秒数值除以所述时间区间对应的时长所得到的余数,获取所述实际毫秒数值与所得余数的差值,并与所述时间区间对应的时长相加得到目标毫秒数值;
将所述实际接收时间对应的所述实际毫秒数值更新为所述目标毫秒数值,确定所述目标接收时间。
9.一种超时客户端的检测装置,应用于服务器,其特征在于,包括:
第一处理模块,用于在服务器与多个客户端建立连接时,根据目标时长和连接时刻确定一目标时段,并将所述目标时段均分为K个连续的时间区间,所述连接时刻为所述目标时段的初始时刻,每个所述时间区间对应于一初始时刻和一终止时刻,且每个所述时间区间对应于一个分组,K为大于或者等于2的整数,所述分组用于进行不同客户端的区分;
第一确定模块,用于在接收到所述客户端发送的心跳包的情况下,根据所述心跳包对应的目标接收时间与K个所述时间区间分别对应的初始时刻和终止时刻之间的关系,确定所述客户端对应的分组,所述目标接收时间基于实际接收时间确定;
检测模块,用于在到达进行超时检测的目标时刻时,根据所述目标时长、所述目标时刻以及每个分组对应的终止时刻,对每个分组对应的所述客户端进行超时检测,以对超时客户端进行清理。
10.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的超时客户端的检测方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的超时客户端的检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110902002.XA CN113726595B (zh) | 2021-08-06 | 2021-08-06 | 超时客户端的检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110902002.XA CN113726595B (zh) | 2021-08-06 | 2021-08-06 | 超时客户端的检测方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113726595A CN113726595A (zh) | 2021-11-30 |
CN113726595B true CN113726595B (zh) | 2024-03-19 |
Family
ID=78675053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110902002.XA Active CN113726595B (zh) | 2021-08-06 | 2021-08-06 | 超时客户端的检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113726595B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577997B (zh) * | 2022-12-12 | 2023-06-09 | 上海奔曜科技有限公司 | 排程控制方法、装置、设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1569404A1 (en) * | 2004-02-25 | 2005-08-31 | Research In Motion Limited | System and method for maintaining a network connection |
CN101656764A (zh) * | 2009-09-22 | 2010-02-24 | 中兴通讯股份有限公司 | Dhcp用户的会话保活方法、系统和装置 |
CN105704107A (zh) * | 2014-11-28 | 2016-06-22 | 中兴通讯股份有限公司 | 实现心跳通信的方法、注册中心、服务端和客户端 |
CN108449239A (zh) * | 2018-06-19 | 2018-08-24 | 广州视源电子科技股份有限公司 | 心跳包检测方法、装置、设备和存储介质 |
CN109257396A (zh) * | 2017-07-12 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式锁调度方法及装置 |
CN110139452A (zh) * | 2019-07-10 | 2019-08-16 | 南京理控物联技术有限公司 | 一种提高NB-IoT 单灯控制器通信成功率的方法 |
CN111181804A (zh) * | 2019-12-20 | 2020-05-19 | 中移(杭州)信息技术有限公司 | 智能设备离线状态自动检测方法、装置、电子设备及介质 |
CN112987904A (zh) * | 2019-12-18 | 2021-06-18 | 成都鼎桥通信技术有限公司 | 一种心跳控制方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8762546B2 (en) * | 2011-12-13 | 2014-06-24 | Motorola Mobility Llc | Method and apparatus for adaptive network heartbeat message for TCP channel |
-
2021
- 2021-08-06 CN CN202110902002.XA patent/CN113726595B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1569404A1 (en) * | 2004-02-25 | 2005-08-31 | Research In Motion Limited | System and method for maintaining a network connection |
CN101656764A (zh) * | 2009-09-22 | 2010-02-24 | 中兴通讯股份有限公司 | Dhcp用户的会话保活方法、系统和装置 |
CN105704107A (zh) * | 2014-11-28 | 2016-06-22 | 中兴通讯股份有限公司 | 实现心跳通信的方法、注册中心、服务端和客户端 |
CN109257396A (zh) * | 2017-07-12 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 一种分布式锁调度方法及装置 |
CN108449239A (zh) * | 2018-06-19 | 2018-08-24 | 广州视源电子科技股份有限公司 | 心跳包检测方法、装置、设备和存储介质 |
CN110139452A (zh) * | 2019-07-10 | 2019-08-16 | 南京理控物联技术有限公司 | 一种提高NB-IoT 单灯控制器通信成功率的方法 |
CN112987904A (zh) * | 2019-12-18 | 2021-06-18 | 成都鼎桥通信技术有限公司 | 一种心跳控制方法和装置 |
CN111181804A (zh) * | 2019-12-20 | 2020-05-19 | 中移(杭州)信息技术有限公司 | 智能设备离线状态自动检测方法、装置、电子设备及介质 |
Non-Patent Citations (3)
Title |
---|
一种网络节点通信控制的心跳模型;鄢锋;桂卫华;胡志坤;冯怀成;;信息与控制(第05期);全文 * |
基于互联网服务器的海量ZigBee节点管理系统;芦晨博;;计算机系统应用(第06期);全文 * |
大规模集群中一种自适应可扩展的RPC超时机制;钱迎进;肖侬;金士尧;;软件学报(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113726595A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104506392B (zh) | 一种宕机检测方法及设备 | |
US9713109B2 (en) | Method for locating a frequency deviation in a communication network, and corresponding communication network | |
CN113726595B (zh) | 超时客户端的检测方法、装置、电子设备及存储介质 | |
JP6891671B2 (ja) | 攻撃検知装置および攻撃検知方法 | |
WO2007070292A1 (en) | Node discovery involving stealth node enumerators | |
CN106341270A (zh) | 一种故障处理方法及装置 | |
JP2019126004A (ja) | 攻撃検知装置および攻撃検知方法 | |
CN110290529B (zh) | 组网均衡方法、装置及服务器 | |
CN114338267B (zh) | 多管理节点的维护方法、装置、设备、总线网络及介质 | |
WO2011026371A1 (zh) | 历史性能数据的有效性检测方法及装置 | |
CN113141239B (zh) | 一种数据重传的方法、装置、设备和存储介质 | |
CN113452770B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN111917436B (zh) | 噪声估计方法、通信接口和计算机可读存储介质 | |
CN113588132A (zh) | 一种温度处理方法及装置 | |
CN112087349A (zh) | 一种重传超时值的获取方法、装置及系统 | |
CN109274546B (zh) | 一种定时器调度方法及装置 | |
CN116501465A (zh) | 自动驾驶任务执行方法、装置、电子设备及存储介质 | |
CN111726394B (zh) | 设备离线检测方法及其相关装置 | |
JP5734802B2 (ja) | 通信装置及び通信方法 | |
CN111092959B (zh) | 一种集群中服务器的请求处理方法、系统及相关装置 | |
JP2019126003A (ja) | 攻撃検知装置および攻撃検知方法 | |
CN110086592B (zh) | 基于虚拟时间轴的数据处理方法、装置及电子设备 | |
EP2566078A1 (en) | Determining a quality of a clock signal | |
US20150163113A1 (en) | Communication control apparatus | |
CN111865722A (zh) | 一种节点健康状态检测及处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |