【发布时间】:2021-06-05 23:18:24
【问题描述】:
我的规则链分析是基于状态的,这意味着计算取决于先前数据的值。
假设设备每秒生成数据,因此 5 秒内从 t=0 到 t=4 有 5 个数据(t=0、t=1、t=2、t=3 和 t=4) .在理想情况下,首先,设备将发送 t=0 数据,然后 Thingsboard 将接收它。接下来,设备将发送 t=1 数据,然后 Thingsboard 将接收它。接下来,设备将发送 t=2 数据,然后 Thingsboard 将接收它。因此,Thingsboard 会根据 t 值按时间顺序接收数据。
但是由于网络问题,我遇到了问题。假设 Thingsboard 现在获取 t=3 数据,但由于网络问题,t=1 数据恰好在 t=3 数据之后到达。 t=1 应该在 t=3 数据之前发送和接收,但它可能由于网络连接丢失而发生。所以数据进入 Thingsboard 规则链的顺序被破坏了。
所以我认为我需要先实现一个队列来收集所有数据,然后根据时间戳对其进行排序,然后再将其发布到 Thingsboard。假设设备时间戳和服务器时间戳之间的最大延迟为 15 分钟。所以我需要先排队 15 分钟,然后再发布到 thingsboard。
但是我该如何实现这个队列呢?还是我的想法不是最好的解决方案?
【问题讨论】:
标签: message-queue iot thingsboard