0
我正在運行一個cherrypy web服務,想知道什麼是通過sqlalchemy從「通過對等方重置連接」恢復pymssql連接的最佳選擇。現在我必須重新啓動webservice。sqlalchemy pymssql「連接重置對等」恢復
我正在運行一個cherrypy web服務,想知道什麼是通過sqlalchemy從「通過對等方重置連接」恢復pymssql連接的最佳選擇。現在我必須重新啓動webservice。sqlalchemy pymssql「連接重置對等」恢復
這似乎是pymssql的is_disconnect()方法中的一個錯誤,它忽略了TCP連接和超時失敗,使光標處於不幸狀態;見http://www.sqlalchemy.org/trac/ticket/2172。現在,你可以猴子補丁爲:
from sqlalchemy.dialects.mssql import pymssql
def is_disconnect(self, e):
for msg in (
"20003",
"20004",
"Error 10054",
"Not connected to any MS SQL server",
"Connection is closed"
):
if msg in str(e):
return True
else:
return False
pymssql.MSDialect_pymssql.is_disconnect = is_disconnect