django-concurrency无所事事

时间:2017-05-16 03:13:13

标签: django concurrency

我正在测试我的应用程序的并发性 我正在使用django-concurrency

对于每个添加的模型

from concurrency.fields import IntegerVersionField

version = IntegerVersionField( )

所以我打开2个浏览器窗口我的应用程序。使用2个不同的用户进行日志记录,并使用相同的记录进保存一个然后我保存第二个,总是第二个只是覆盖第一个。基本上什么也没做。 预计第二次保存会出错。

可能是什么问题?

1 个答案:

答案 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并发指南中的说明进行编辑。或者使用多线程客户端进行测试。