本文介紹了Twisted、MySQLdb和(2006,&;#39;MySQL服務(wù)器已不再使用Twisted adbapi的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
在Twisted中,我是一個(gè)永久的事件循環(huán),它總是在尋找新的查詢來(lái)運(yùn)行它,輪詢SQS隊(duì)列,查詢之間的時(shí)間足夠長(zhǎng),以至于超時(shí),這是當(dāng)新查詢到達(dá)時(shí)我得到的錯(cuò)誤…
MySQLdb_MySQL_Exceptions.OperationalError:(2006,‘MySQL服務(wù)器有
離開‘)
這是我的連接
self.pool = adbapi.ConnectionPool("MySQLdb", self.parms['host'], self.parms['username'], self.parms['password'], self.parms['database'])
以下是我嘗試解決問(wèn)題時(shí)使用的邏輯。
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'
問(wèn)題是,它似乎運(yùn)行得不是很好。因此..如果出現(xiàn)206錯(cuò)誤,請(qǐng)嘗試重新連接并再次執(zhí)行查詢。解決此問(wèn)題的最佳實(shí)踐是什么?
謝謝
推薦答案
我沒(méi)有使用adbapi的經(jīng)驗(yàn),但docs中提到的cp_reConnect參數(shù)看起來(lái)很有前途。
這樣,您的池初始化將如下所示:
self.pool = adbapi.ConnectionPool("MySQLdb", self.parms['host'], self.parms['username'], self.parms['password'], self.parms['database'], cp_reconnect=True)
這篇關(guān)于Twisted、MySQLdb和(2006,&;#39;MySQL服務(wù)器已不再使用Twisted adbapi的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,