不久前,我花了数周的噩梦来处理“检测到死锁”并试图弄清楚如何处理它。我最终以这样一种方式处理它,即我的代码能够检测到它何时发生,然后在每次重试之间以 50000 微秒无限期地重试相同的查询,直到它起作用。
也许这是不好的做法,但到目前为止(几个月),除了记录“检测到的死锁”所谓的“错误”之外,它没有引起任何问题。
我现在可以通过将“检测到死锁”错误标记为“不重要”来抑制“检测到死锁”错误,因此即使它们仍然登录到我的错误日志表中也不会向我显示?
请不要告诉我“首先避免它们”。这根本不可能。如果您在同一个表/事物上进行并发(多个进程/脚本实例),它们显然会发生。我一直在尝试“将它们编码”,但这似乎是不可能的。
显然,由于我问的是这个而不是仅仅添加忽略规则并完成它,我确实关心答案/响应。尽管如此,我认为目前我不能确信它们可以完全避免。我并不是说我每小时记录数千个或其他任何内容,而是每天记录一些,似乎总是在开始时我确实有很多并发进程在同一个表/查询上工作。