【发布时间】:2015-07-16 18:15:21
【问题描述】:
使用 MySQL 后端在 Django 中模拟“锁定超时”DatabaseError 的最简单方法是什么?
我有一段代码在大型查询集上运行,偶尔会抛出异常:
DatabaseError: (1205, 'Lock wait timeout exceeded; try restarting transaction')
我了解导致此问题的原因以及如何修复它,但我不确定如何测试我的修复,因为该错误仅发生在多个用户同时访问某些表的生产环境中。
我首先尝试在单独的进程中运行 some sample code 以使 Django 在 MySQL 中应用锁,虽然它似乎确实锁定了目标表并使所有其他请求等待,但当我测试时从未发生锁定超时我的本地主机与 runserver。我让它运行了 20 分钟,没有发生超时。
【问题讨论】:
标签: python mysql django django-orm database-locking