Mat*_*ois 7 mysql error-handling mysql-python
我正在编写一个python实用程序来在MySQL服务器上执行大量请求.其中一个要求是,如果我们检测到临时故障(例如,如果网络是临时故障),则重试查询(一段时间后).我们使用MySQL Connector/Python.
基本思路是:
try:
cursor = cnx.get_cursor()
except:
# If error is temporary, wait and retry
# else stop
try:
cursor.execute(request)
except:
# If error is temporary, wait and retry
# else stop
Run Code Online (Sandbox Code Playgroud)
分别处理游标和请求的创建以简化错误处理.
问题是,似乎很难发现值得重试的情况.AFAI,MySQL错误与MysQL Connector/Python中的PEP 249错误之间的映射并不容易.例如,错误2013(与服务器的连接丢失)映射到InterfaceError错误2006(服务器已经消失)映射到,OperationalError而两者都是值得重试的情况.
所以我想知道是否有一种传统方式(可能基于此errno)来对这些错误进行分类.
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
for i in range(0,100):
while True:
try:
result = sock.connect_ex(('irc.myserver.net', 6667))
if result == 0:
break
else:
continue
Run Code Online (Sandbox Code Playgroud)
您可以在进行数据传输之前或之后尝试这种事情吗?您可以检查数据库之间的连接,然后如果一切正常,您可以执行查询