Python paho mqtt客户机何时丢弃缓冲消息?
我正在使用基于Python的paho mqtt客户机将数据发布到MOSQUITO mqtt代理 让我们假设一个场景,当客户端想要发布消息而代理断开连接时 因此,基于python的客户机对象缓冲该消息输入输出消息(有序字典),并不断尝试发送消息 我想知道Python paho mqtt客户机何时丢弃缓冲消息?,python,mqtt,paho,Python,Mqtt,Paho,我正在使用基于Python的paho mqtt客户机将数据发布到MOSQUITO mqtt代理 让我们假设一个场景,当客户端想要发布消息而代理断开连接时 因此,基于python的客户机对象缓冲该消息输入输出消息(有序字典),并不断尝试发送消息 我想知道 mqtt客户机将缓冲该消息多长时间 是否有任何时间限制或重试限制,超过此限制后,客户端将删除消息 我想转储/记录此类消息。根据,您可以使用以下方法设置服务质量大于0(QoS>0)的传出消息队列中挂起的最大传出消息数: max_queued_m
- mqtt客户机将缓冲该消息多长时间
- 是否有任何时间限制或重试限制,超过此限制后,客户端将删除消息
max_queued_messages_set(self, queue_size)
似乎使用默认值(0)会保留所有消息,直到MQTT客户机能够发送它们。因此,最后,我假设消息会一直保存到Python进程达到操作系统施加的内存限制为止
您可以使用reinitialise方法强制MQTT客户机丢弃消息
reinitialise(client_id="", clean_session=True, userdata=None)
你试过看源代码吗?我已经做了一些级别的代码演练,但没有任何关于删除缓冲消息的线索?这就是我发布这个问题的原因?@barny,如果你有关于这个问题的任何信息,请分享你的知识,或者请引导我到正确的访问论坛/地点。我的知识水平与你完全相同。源代码显示:a)
out\u消息
队列仅用于qos 1,2;和b)对于未确认的消息,重试时没有明显的过期。但是你可以自己检查一下。对于使用客户端正确处理_disconnect()回调和发布调用返回的值非常重要,因为队列决不是无限的。