我的MQTT订阅通常很好,但是当服务器中发生某些异常时,我的MQTT无法正常工作,例如由于内存不足而导致服务器终止postgresql或某些任务,并将postgresql进入恢复模式,这将使我的MQTT的PostgreSQL连接失败(尽管已关闭Postgresql服务,但连接关闭),我的MQTT仍然连接失败(或关闭)。
那么,反正还能自动重新连接吗?
import threading
import paho.mqtt.client as paho_mqtt
def t1():
client = paho_mqtt.Client(client_id="*****")
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set("****", "****")
client.connect("******", ***, **)
client.loop_forever()
def on_connect(client, userdata, flags, rc):
client.subscribe(topic="********", qos=1)
print('subcriptions')
print(userdata)
print(flags)
print(rc)
thread1 = threading.Thread(target=t1)
thread1.start()
time.sleep(10)
thread1.join()
答案 0 :(得分:0)
现在,我找到了解决此问题的方法。
django.db.close_old_connections()
当我尝试异常时出现错误“连接已关闭”,然后我关闭了旧连接
Django将重新连接。
但我仍在测试。