python:保持数据库打开/或重新连接的最佳方法

问题描述 投票:2回答:1

我有一个始终在后台运行的python脚本

nohup python script.py&

所以脚本的作用是:它检查mqtt是否存在任何消息,如果为true,则将其插入数据库中

on_message(client, userdata, msg):
    SQL.execute("INSERT INTO logs(deviceID) VALUES (msg)")

我使用这种方式连接到数据库,但是几个小时后,连接已关闭并且脚本正在运行,但无法插入数据库

mydb = mysql.connector.connect(host="localhost",  user="xxxx",  passwd="xxxx",  database="xxx")
SQL = mydb.cursor()

问题:

  1. 我是否每次都要在SQL.execute()之前打开新连接,或者更好地使其保持打开状态?
  2. 您可以添加您认为更适合使用的代码
python
1个回答
0
投票
您的消息多久发送一次?如果不太常用,我只需try打开连接,插入,然后在else关闭中将其关闭。连接是系统资源,您不应浪费它们。

此外,某些数据库引擎,不了解mysql,将定期垃圾收集长空闲连接,并且当您尝试使用它时,连接会意外关闭。

© www.soinside.com 2019 - 2024. All rights reserved.