Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python paho mqtt客户机何时丢弃缓冲消息?_Python_Mqtt_Paho - Fatal编程技术网

Python paho mqtt客户机何时丢弃缓冲消息?

Python paho mqtt客户机何时丢弃缓冲消息?,python,mqtt,paho,Python,Mqtt,Paho,我正在使用基于Python的paho mqtt客户机将数据发布到MOSQUITO mqtt代理 让我们假设一个场景,当客户端想要发布消息而代理断开连接时 因此,基于python的客户机对象缓冲该消息输入输出消息(有序字典),并不断尝试发送消息 我想知道 mqtt客户机将缓冲该消息多长时间 是否有任何时间限制或重试限制,超过此限制后,客户端将删除消息 我想转储/记录此类消息。根据,您可以使用以下方法设置服务质量大于0(QoS>0)的传出消息队列中挂起的最大传出消息数: max_queued_m

我正在使用基于Python的paho mqtt客户机将数据发布到MOSQUITO mqtt代理

让我们假设一个场景,当客户端想要发布消息而代理断开连接时

因此,基于python的客户机对象缓冲该消息输入输出消息(有序字典),并不断尝试发送消息

我想知道

  • mqtt客户机将缓冲该消息多长时间
  • 是否有任何时间限制或重试限制,超过此限制后,客户端将删除消息
我想转储/记录此类消息。

根据,您可以使用以下方法设置服务质量大于0(QoS>0)的传出消息队列中挂起的最大传出消息数:

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()回调和发布调用返回的值非常重要,因为队列决不是无限的。