En fait, dans MySQLdb, plus élégante, ne vérifiez pas si la connexion est active. Vérifiez si la connexion est active provoquera également une exception si le serveur mysql ferme la connexion de façon lente. Laissez-le et utilisez le mécanisme de reconnexion dans un bloc try except.
Dans MySQLdb, il existe un errorhandler dans connection.py qui sera utilisé en cas d'erreur.
def defaulterrorhandler(connection, cursor, errorclass, errorvalue):
"""
If cursor is not None, (errorclass, errorvalue) is appended to
cursor.messages; otherwise it is appended to
connection.messages. Then errorclass is raised with errorvalue as
the value.
You can override this with your own error handler by assigning it
to the instance.
"""
error = errorclass, errorvalue
if cursor:
cursor.messages.append(error)
else:
connection.messages.append(error)
del cursor
del connection
raise errorclass, errorvalue
voir le 'del connection
'. Il ferme la connexion et définit la connexion sur None. alors laissez simplement l'erreur arriver et après cela, nous reconstruisons le monde.
Vous avez juste besoin d'implémenter un mécanisme de reconnexion dans un bloc try except pour faire face à un problème tel que Mysql a disparu.
Je dois avoir rebranché activé dans ma config mysql droite? – Cijo
Je ne le fais pas. Peut-être que c'est la valeur par défaut. – phd
Nouveauté 1.2.2: Accepte un paramètre de reconnexion facultatif. Si la valeur est True, , le client tentera de se reconnecter. Notez que ce paramètre est persistant. Par défaut, il est activé dans MySQL <5.0.3, et désactivé ensuite . – Cijo