Python 如何模拟一个;“锁定超时”;MySQL上的Django出错

Python 如何模拟一个;“锁定超时”;MySQL上的Django出错,python,mysql,django,django-orm,database-locking,Python,Mysql,Django,Django Orm,Database Locking,使用MySQL后端模拟Django的“锁定超时”数据库错误的最简单方法是什么 我有一段代码,它在大型查询集上运行,偶尔会抛出异常: DatabaseError: (1205, 'Lock wait timeout exceeded; try restarting transaction') 我知道这是什么原因以及如何修复它,但我不确定如何测试我的修复,因为错误只发生在多个用户同时访问某些表的生产环境中 我首先尝试在一个单独的进程中运行,使Django在MySQL中应用一个锁,虽然它似乎锁定了

使用MySQL后端模拟Django的“锁定超时”数据库错误的最简单方法是什么

我有一段代码,它在大型查询集上运行,偶尔会抛出异常:

 DatabaseError: (1205, 'Lock wait timeout exceeded; try restarting transaction')
我知道这是什么原因以及如何修复它,但我不确定如何测试我的修复,因为错误只发生在多个用户同时访问某些表的生产环境中


我首先尝试在一个单独的进程中运行,使Django在MySQL中应用一个锁,虽然它似乎锁定了目标表并使所有其他请求等待,但当我使用runserver在本地主机上测试时,锁超时从未发生。我让它运行了20分钟,没有出现超时。

如果您只需要一个特定类型的异常,为什么不在测试中模拟/monkeypatch您的代码来抛出这个exeption,而不是从数据库获取