如何保存GatewayWorker实时检测硬件在线状态

hyet

能用GatewayWorker获取到硬件的心跳包了,我现在在数据库中筛选出需要检测的设备号码,有可能有几千几万的数据量,如何有效的去实时检测,这些设备的在线状态?
前期方案,筛选出来的数据是一个数组,在检测到硬件发送来过的心跳包之后,用循环去查询数组中是否存在该设备号码,如存在,修改状态(默认状态为离线),但是如果用循环去比较的话,是不是效率不高啊

2912 1 0
1个回答

边玩边玩

这不是应该根据心跳时间去检测设备最后一次发送心跳的时间差是否超过这个心跳秒数,如果超过就说明离线。更新设备为离线状态。

  • hyet 2019-06-27

    能在具体一点吗

  • 边玩边玩 2019-06-27

    硬件实时发送心跳包给服务端,服务端记录该硬件的最后一次发送心跳时间。如果心跳时间是5s,超过5s没有发送,这表明这台设备离线。

  • hyet 2019-06-27

    每次设备发过来心跳包之后,修改一下时间,前端这边的话,定时查询数据库中内容,是这个意思吗?

  • taozywu 2019-06-27

    @5994:前端可以定时读取,也可以websocket

  • 边玩边玩 2019-06-28

    可以前端查,也可以开一个进程 定时执行 批量更新设备离线的状态

年代过于久远,无法发表回答
×
🔝