在扭曲中,我是一个永久的事件循环,总是看起来要运行一个新的查询它轮询一个SQS队列,并且是在queres之间的时间足够长以超时的时候,这是我在新的时候得到的错误查询到达......
MySQLdb _mysql_exceptions.OperationalError:(2006,'MySQL服务器有 走了')
这是我的连接
self.pool = adbapi.ConnectionPool("MySQLdb", self.parms['host'], self.parms['username'], self.parms['password'], self.parms['database'])
这是我用来尝试解决问题的逻辑。
try:
d = self.pool.runQuery(query, ())
except:
self.pool = adbapi.ConnectionPool("MySQLdb", self.parms['host'], self.parms['username'], self.parms['password'], self.parms['database'])
d = self.pool.runQuery(query, ())
print 'Reconnecting'
问题是它似乎不能很好地工作。所以..如果得到206错误,请尝试重新连接并再次执行查询。解决这个问题的最佳做法是什么?
由于
答案 0 :(得分:2)
我没有使用 adbapi 的经验,但docs中提到的 cp_reconnect 参数看起来很有希望。
因此,您的池初始化将类似于:
self.pool = adbapi.ConnectionPool("MySQLdb", self.parms['host'], self.parms['username'], self.parms['password'], self.parms['database'], cp_reconnect=True)