sqlalchemy PymSql“;“对等端重置连接”;恢复

sqlalchemy PymSql“;“对等端重置连接”;恢复,sqlalchemy,cherrypy,pymssql,Sqlalchemy,Cherrypy,Pymssql,我正在运行一个cherrypy Web服务,想知道通过sqlalchemy从pymssql连接的“对等重设连接”恢复的最佳选项是什么。现在我必须重新启动Web服务。这似乎是pymssql的is_disconnect()方法中的一个错误,它忽略TCP连接和超时故障,使光标处于不愉快的状态;看见现在,您可以将monkey patch设置为: from sqlalchemy.dialects.mssql import pymssql def is_disconnect(self, e): f

我正在运行一个cherrypy Web服务,想知道通过sqlalchemy从pymssql连接的“对等重设连接”恢复的最佳选项是什么。现在我必须重新启动Web服务。

这似乎是pymssql的is_disconnect()方法中的一个错误,它忽略TCP连接和超时故障,使光标处于不愉快的状态;看见现在,您可以将monkey patch设置为:

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