Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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脚本中处理MySQL连接的最佳实践_Python_Mysql_Python 3.x_Database_Pymysql - Fatal编程技术网

在长时间运行的python脚本中处理MySQL连接的最佳实践

在长时间运行的python脚本中处理MySQL连接的最佳实践,python,mysql,python-3.x,database,pymysql,Python,Mysql,Python 3.x,Database,Pymysql,我目前有一个长时间运行的python脚本(几天),它偶尔会在mysql数据库中执行查询。查询是从不同的线程执行的 我按以下方式连接到db: import mysql.connector import time class DB(): connection = None def __init__(self, host, user, password, database): self.host = host; self.user = user;

我目前有一个长时间运行的python脚本(几天),它偶尔会在mysql数据库中执行查询。查询是从不同的线程执行的

我按以下方式连接到db:

import mysql.connector
import time

class DB():
    connection = None

    def __init__(self, host, user, password, database):
        self.host = host;
        self.user = user;
        self.password = password;
        self.database = database;

    self.connect()

    def connect(self):
        try:
            self.connection =  mysql.connector.connect(
                host = self.host,
                user = self.user,
                password = self.password,
                database = self.database,
                autocommit = True,
            )
        except Exception as exception:
            print("[DBCONNECTION] {exception} Retrying in 5 seconds.".format(exception = str(exception)))
            time.sleep(5)
            self.connect()

db = DB("11.111.11.111", "mydb", "mydb", "mydb")
执行查询的函数之一:

def getUsersDB(self):
    db.connection.ping(reconnect=True)

    cursor = db.connection.cursor()
    cursor.execute("SELECT * FROM Users")
    
    users = cursor.fetchall()

    return users

我相信,我离处理连接的良好实践还很远。对于这种情况,正确的方法是什么?

为什么您认为这不是一个好的做法?我的方法几乎是猜测。