Je l'ai travailler maintenant. L'utilisation de connexions groupées a semblé résoudre le problème pour moi.
mysql.connector.connect(
host='10.0.0.25',
user='xxxxxxx',
passwd='xxxxxxx',
database='xxxxxxx',
pool_name='batman',
pool_size = 3
)
def connection():
"""Get a connection and a cursor from the pool"""
db = mysql.connector.connect(pool_name = 'batman')
return (db, db.cursor())
J'appelle connection()
avant chaque fonction de requête, puis fermez le curseur et la connexion avant de revenir. Semble fonctionner. Toujours ouvert à une meilleure solution cependant.
Modifier
J'ai depuis trouvé une meilleure solution. (Je rencontrais encore occasionnellement des problèmes avec les connexions groupées). Il existe en fait une bibliothèque dédiée à Flask pour gérer les connexions mysql, qui est presque un remplacement instantané.
Depuis bash :pip install Flask-MySQL
Ajouter MYSQL_DATABASE_HOST
, MYSQL_DATABASE_USER
, MYSQL_DATABASE_PASSWORD
, MYSQL_DATABASE_DB
à votre configuration Flask. Puis dans le fichier Python principal contenant votre objet Flask App :
from flaskext.mysql import MySQL
mysql = MySQL()
mysql.init_app(app)
Et pour obtenir une connexion :mysql.get_db().cursor()
Toutes les autres syntaxes sont les mêmes, et je n'ai eu aucun problème depuis. J'utilise cette solution depuis longtemps maintenant.