У мене є сценарій python, який запитує сервер MySQL на загальному хості Linux. З якоїсь причини запити до MySQL часто повертають помилку "сервер зник":
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
Якщо ви спробуєте запит ще раз одразу після цього, як правило, це вдається. Отже, я хотів би знати, чи є розумний спосіб у python спробувати виконати запит, а якщо він не вдається, спробувати ще раз, до фіксованої кількості спроб. Можливо, я хотів би, щоб спробувати 5 разів, перш ніж відмовитись взагалі.
Ось такий код у мене є:
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])
Зрозуміло, я міг би зробити це, зробивши ще одну спробу в пункті за винятком, але це неймовірно потворно, і я відчуваю, що для цього потрібно мати гідний спосіб.