我正在测试我的应用程序的并发性 我正在使用django-concurrency
对于每个添加的模型
from concurrency.fields import IntegerVersionField
version = IntegerVersionField( )
所以我打开2个浏览器窗口我的应用程序。使用2个不同的用户进行日志记录,并使用相同的记录进保存一个然后我保存第二个,总是第二个只是覆盖第一个。基本上什么也没做。 预计第二次保存会出错。
可能是什么问题?
答案 0 :(得分:2)
我从未使用过Django并发性,如果我遇到提供抽象并发,事务管理等的应用程序,我会跑一英里。基于并发的一般概念。这种行为似乎是对的。这里没有错误。
django-concurrency是一个乐观的锁[1]实现 Django的。
支持的Django版本:1.8.x,1.9.x,1.10.x.,1.11.x
它阻止用户从UI中在Django中进行并发编辑 并从django命令。
这实际上意味着两个用户无法同时修改同一个实例。在刚刚尝试的两种浏览器测试中,这种情况永远不会产生!通常情况下,一个或另一个事务通常会运行完成,因为在localhost上的小型数据库上进行测试时,没有延迟,一切都会立即发生。
测试此方法的正确方法是打开单独的更改shell,打开相同的实例并按照django并发指南中的说明进行编辑。或者使用多线程客户端进行测试。