Python Paho MQTT 如何在 Postgresql 关闭连接或其他方式后自动重新连接

Python Paho MQTT how to auto reconnect after Postgresql Closed connection or something else

我的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()

现在,我找到了解决这个问题的方法。

django.db.close_old_connections()

当我尝试异常时出现错误“连接已关闭”,然后我关闭旧连接

Django 将重新连接。

但我还在测试。