本发明涉及设备在线状态计算,尤其涉及一种设备在线状态计算方法、设备及存储介质。
背景技术:
1、随着物联网设备连接规模的不断增长,对系统的连接数、处理能力都提出了更高的要求。单体应用系统已经无法满足大规模的设备连接,因此逐渐出现了采用多个应用系统组成的集群系统,其能够有效扩展设备的连接规模。
2、然而,在多个应用系统组成的集群系统中,若设备在心跳周期内由服务器a的负载变更为服务器b的负载,则服务器a轮询时会发现设备心跳超时,造成设备状态的误判。
技术实现思路
1、本发明提供一种设备在线状态计算方法、设备及存储介质,以解决现有技术中当设备心跳负载到其他服务器时,会出现设备状态误判的问题。
2、为实现上述目的,本发明实施例提供了一种设备在线状态计算方法,应用于远端服务器,所述设备在线状态计算方法包括:
3、接收与本地服务器连接成功的所有设备发送来的所有心跳报文;其中,每一所述心跳报文至少包括:设备标识和心跳时间戳;
4、接收所述本地服务器发送来的目标队列;其中,所述目标队列存储有所述本地服务器确认的目标设备的目标设备标识,所述目标设备为所有所述设备中的心跳超时的设备;
5、根据所有所述心跳报文,获取与所述目标设备标识对应的目标心跳报文;
6、根据所述目标心跳报文确认所述目标设备的状态。
7、作为上述方案的改进,每一所述心跳报文还包括:心跳超时时间。
8、作为上述方案的改进,所述根据所述目标心跳报文确认所述目标设备的状态,包括:
9、计算当前时间与所述目标心跳报文中的心跳时间戳之间的第一时间差值;
10、若所述第一时间差值大于预设的第一心跳超时时间,则确认所述目标设备为离线状态;
11、若所述第一时间差值小于或等于所述第一心跳超时时间,则确认所述目标设备为在线状态。
12、作为上述方案的改进,所述设备在线状态计算方法还包括:
13、当所述目标队列中存储的所述目标设备标识的数量大于预设的数量阈值时,将所述目标队列拆分为多个子目标队列。
14、作为上述方案的改进,所述目标队列存储有所述本地服务器确认的目标设备的目标设备标识,包括:
15、所述目标队列存储有所述本地服务器根据与自身连接成功的所有设备发送来的所有心跳报文,确认的目标设备的目标设备标识。
16、为实现上述目的,本发明实施例还提供了一种设备在线状态计算方法,应用于本地服务器,所述设备在线状态计算方法包括:
17、接收与所述本地服务器连接成功的所有设备发送来的所有心跳报文;其中,每一所述心跳报文至少包括:设备标识和心跳时间戳;
18、根据所有所述心跳报文确认目标设备的目标设备标识;其中,所述目标设备为所有所述设备中的心跳超时的设备;
19、将所述目标设备标识加入目标队列,并将所述目标队列发送至远端服务器,以使所述远端服务器根据接收到的与所述本地服务器连接成功的所有设备发送来的所有心跳报文,确认所述目标设备的状态。
20、作为上述方案的改进,所述根据所有所述心跳报文确认目标设备的目标设备标识,包括:
21、计算当前时间与所述心跳报文中的心跳时间戳之间的第二时间差值;
22、若所述第二时间差值大于预设的第二心跳超时时间,则确认所述设备为所述目标设备;
23、若所述第二时间差值小于或等于所述第二心跳超时时间,则确认所述设备不是所述目标设备。
24、作为上述方案的改进,所述将所述目标设备标识加入目标队列,并将所述目标队列发送至远端服务器,以使所述远端服务器根据接收到的与所述本地服务器连接成功的所有设备发送来的所有心跳报文,确认所述目标设备的状态,包括:
25、将所述目标设备标识加入目标队列,并将所述目标队列发送至远端服务器,以使所述远端服务器根据接收到的与所述本地服务器连接成功的所有设备发送来的所有心跳报文,获取与所述目标设备标识对应的目标心跳报文,根据所述目标心跳报文确认所述目标设备的状态。
26、为实现上述目的,本发明实施例还提供了一种设备在线状态计算设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如上述的设备在线状态计算方法。
27、为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如上述的设备在线状态计算方法。
28、与现有技术相比,本发明实施例提供的一种设备在线状态计算方法、设备及存储介质,通过本地服务器确认目标设备的目标设备标识,将目标设备标识加入目标队列中发送至远端服务器,远端服务器根据接收到的与本地服务器连接成功的所有设备发送来的所有心跳报文,确认所述目标设备标识对应的目标心跳报文,进而根据所述目标心跳报文确认所述目标设备的状态;其中,所述目标设备为所有所述设备中的心跳超时的设备。由此可见,本发明实施例利用本地服务器计算与本地服务器连接成功的设备中的心跳超时的设备(目标设备),远端服务器计算目标设备中心跳超时的设备,无需为每个设备起一个心跳检测线程,去定期检测设备心跳是否超时,减少了服务器资源占用情况,并且对设备的心跳超时情况,进行了双重判断,能够有效避免当设备心跳负载到其他服务器时,出现设备状态误判的情况,本发明实施例能够正确高效地计算设备在线状态。
1.一种设备在线状态计算方法,其特征在于,应用于远端服务器,所述设备在线状态计算方法包括:
2.如权利要求1所述的设备在线状态计算方法,其特征在于,每一所述心跳报文还包括:心跳超时时间。
3.如权利要求1所述的设备在线状态计算方法,其特征在于,所述根据所述目标心跳报文确认所述目标设备的状态,包括:
4.如权利要求1所述的设备在线状态计算方法,其特征在于,所述设备在线状态计算方法还包括:
5.如权利要求1所述的设备在线状态计算方法,其特征在于,所述目标队列存储有所述本地服务器确认的目标设备的目标设备标识,包括:
6.一种设备在线状态计算方法,其特征在于,应用于本地服务器,所述设备在线状态计算方法包括:
7.如权利要求6所述的设备在线状态计算方法,其特征在于,所述根据所有所述心跳报文确认目标设备的目标设备标识,包括:
8.如权利要求6所述的设备在线状态计算方法,其特征在于,所述将所述目标设备标识加入目标队列,并将所述目标队列发送至远端服务器,以使所述远端服务器根据接收到的与所述本地服务器连接成功的所有设备发送来的所有心跳报文,确认所述目标设备的状态,包括:
9.一种设备在线状态计算设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如权利要求1~8任一项所述的设备在线状态计算方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1~8任一项所述的设备在线状态计算方法。