我们进行一些数据挖掘工作时遇到了死锁并失去了连接。我们的挑战是想要捕获 Python pymssql 模块由于死锁而失败的情况。
我们尝试用try/except包装我们的CURSOR.EXECUTE语句,但它没有触发。
我们在Stack Overflow上看到其他示例,这些示例中的人的代码似乎能够捕获死锁,因此我们不确定为什么我们的代码没有捕获。 有什么建议可以捕获这个死锁吗?
当系统失败时,如果能发出牛角或其他警报来通知我们,那将是非常好的。
File "pymssql.pyx", line 465, in pymssql.Cursor.execute (pymssql.c:6572)
OperationalError: (1205, 'Transaction (Process ID 113) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.DB-Lib error message 20018, severity 13:\nGeneral SQL Server error: Check messages from the SQL Server\n')
我们尝试用try/except包装我们的CURSOR.EXECUTE语句,但它没有触发。
try:
CURSOR.execute(query)
except (RuntimeError, TypeError, NameError):
print "RuntimeError: {0}".format(RuntimeError)
我们在Stack Overflow上看到其他示例,这些示例中的人的代码似乎能够捕获死锁,因此我们不确定为什么我们的代码没有捕获。 有什么建议可以捕获这个死锁吗?
当系统失败时,如果能发出牛角或其他警报来通知我们,那将是非常好的。