J'ai un script python qui est de l'interrogation d'un serveur MySQL sur un serveur partagé hôte linux. Pour une raison quelconque, les requêtes pour MySQL reviennent souvent un "server has gone away" erreur:
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
Si vous essayez de la requête à nouveau immédiatement après, il réussit. Donc, j'aimerais savoir si il y a une manière sensible en python à essayer d'exécuter une requête, et si cela échoue, essayez à nouveau, jusqu'à un nombre fixe de la tente. Probablement que je veux pour essayer 5 fois avant d'abandonner complètement.
Voici le genre de code que j'ai:
conn = MySQLdb.connect(host, user, password, database)
cursor = conn.cursor()
try:
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:
# do something with the data
except MySQLdb.Error, e:
print "MySQL Error %d: %s" % (e.args[0], e.args[1])
Clairement, je pouvais le faire en ayant une autre tentative à l'exception de la clause, mais c'est incroyablement laid, et j'ai le sentiment il doit y avoir une manière décente pour atteindre cet objectif.