मेरे पास एक पायथन स्क्रिप्ट है जो एक साझा लिनक्स होस्ट पर MySQL सर्वर को क्वेरी कर रही है। किसी कारण से, MySQL के लिए प्रश्न अक्सर "सर्वर दूर चला गया" त्रुटि लौटाते हैं:
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')
यदि आप क्वेरी को तुरंत बाद में आज़माते हैं, तो यह आमतौर पर सफल होता है। इसलिए, मैं जानना चाहूंगा कि क्या किसी प्रश्न को निष्पादित करने की कोशिश करने के लिए अजगर में एक समझदार तरीका है, और यदि यह विफल हो जाता है, तो निश्चित संख्या में फिर से प्रयास करने के लिए। शायद मैं इसे पूरी तरह से देने से पहले 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])
स्पष्ट रूप से मैं इसे खंड में छोड़कर एक और प्रयास कर सकता था, लेकिन यह अविश्वसनीय रूप से बदसूरत है, और मुझे लगता है कि इसे प्राप्त करने का एक सभ्य तरीका होना चाहिए।