【问题标题】:How to make a queue for handling delayed IoT data?如何排队处理延迟的物联网数据?
【发布时间】: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


    【解决方案1】:

    查看temporal.io。它将允许每个设备有一个单独的工作流,并根据您的业务逻辑执行重新排序。请参阅this answer,它提供了有关此类解决方案结构的基本概念。

    免责声明:我是 Temporal 项目的技术主管。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      相关资源
      最近更新 更多