一、该问题的重现步骤是什么?
1. 设备已经在线,在设备管理里的状态是对的,但是业务在调queryDevicePropertyLatest接口时,返回的是离线,造成无法对设备进行操作,反之也是,设备没有开机,但是该接口返回在线。
2.
3.
二、你期待的结果是什么?实际看到的又是什么?
接口返回的设备在线状态,应与设备管理中的设备在线状态一致。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
我们大概看了一下代码,influxdb存的设备状态是对的,当设备上线或离线时,是不是IotCache缓存的设备在线状态没有及时更新引起的?
queryDevicePropertyLatest这里面用到了IotCache来获取设备缓存,但是他没有实际使用到设备状态的字段呀。
为了缓存不会频繁变更,不会因为设备上下线就去重新更换缓存,不然几十万设备的场景,缓存会很容易奔溃。
所以如果要获取设备状态,是不能直接从缓存取,因为他时时都会变化。
扫一扫访问 Blade技术社区 移动端