本文介紹了Twisted、MySQLdb和(2006,&;#39;MySQL服務器已不再使用Twisted adbapi的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
在Twisted中,我是一個永久的事件循環,它總是在尋找新的查詢來運行它,輪詢SQS隊列,查詢之間的時間足夠長,以至于超時,這是當新查詢到達時我得到的錯誤…
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錯誤,請嘗試重新連接并再次執行查詢。解決此問題的最佳實踐是什么?
謝謝
推薦答案
我沒有使用adbapi的經驗,但docs中提到的cp_reConnect參數看起來很有前途。
這樣,您的池初始化將如下所示:
self.pool = adbapi.ConnectionPool("MySQLdb", self.parms['host'], self.parms['username'], self.parms['password'], self.parms['database'], cp_reconnect=True)
這篇關于Twisted、MySQLdb和(2006,&;#39;MySQL服務器已不再使用Twisted adbapi的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,