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

时间:2018-07-23 03:48:45

标签: python django mqtt paho

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

1 个答案:

答案 0 :(得分:0)

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

django.db.close_old_connections()

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

Django将重新连接。

但我仍在测试。