Tôi có một tập lệnh python đang truy vấn máy chủ MySQL trên máy chủ linux được chia sẻ. Vì một số lý do, các truy vấn đến MySQL thường trả về lỗi "máy chủ đã biến mất":
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
Nếu bạn thử lại truy vấn ngay sau đó, nó thường thành công. Vì vậy, tôi muốn biết liệu có cách hợp lý nào trong python để thử thực hiện một truy vấn và nếu nó không thành công, hãy thử lại, lên đến một số lần cố định. Có lẽ tôi muốn nó thử 5 lần trước khi từ bỏ hoàn toàn.
Đây là loại mã tôi có:
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])
Rõ ràng tôi có thể làm điều đó bằng cách thử một lần nữa trong điều khoản ngoại trừ, nhưng điều đó vô cùng xấu xí, và tôi có cảm giác phải có một cách hợp lý để đạt được điều này.