用于在不在线24/7时处理IoT应用程序中消息传递的模式

问题描述 投票:0回答:1

我想使用Python开发物联网应用程序,该应用程序可以在船上运行,并在网络连接可用时偶尔发送数据。大约有10%的情况是这种情况。

是否有任何模式/实现可以准确地处理此用例?我已经阅读了有关MQTT和RabbitMQ / AMQP的信息,但是实现期望客户端在发送消息时到达代理。我需要的是某种本地持久性,它会建立本地队列并在检测到连接时发送消息。

[我知道我可以为我自己,也可以为我们提供一个SQLite数据库,但是我认为这并不是一个罕见的用例,因此我确定必须为此提供解决方案,而我只是使用了错误的搜索词。

python rabbitmq mqtt iot
1个回答
0
投票

您正在寻找的模式已经在标准PAHO MQTT客户端中实现,作为服务质量(QOS)流程的一部分。您需要做的就是调用参数'qos'等于2的方法'publish'。该框架将为您处理所有其他事情,并自动缓冲消息,直到连接可用为止。

但是有两点需要注意:-缓冲区是内存中的缓冲区,在断电的情况下,所有消息都将丢失。如果在这种情况下不能丢失消息,则必须将消息永久存储到本地文件/数据库中。

  • 作为内存缓冲区,它受python代码的总可用内存限制。因此,对于大量消息或消息大小(可能超出可用内存),您还必须实现持久性本地存储。
© www.soinside.com 2019 - 2024. All rights reserved.