我正在测试我的应用程序的并发性,我使用django-并发。
每增加一个模型
from concurrency.fields import IntegerVersionField
version = IntegerVersionField( )所以我用两个浏览器窗口打开我的应用程序。使用两个不同的用户进行日志记录,并使用相同的记录进行编辑。用一个保存,然后用第二个保存,总是第二个保存,只是覆盖第一个。基本上什么都不做。我的第二次扑救可能会出错。
有什么问题吗?
发布于 2017-05-16 03:20:45
我从来没有使用Django并发,如果我运行的应用程序提供抽象并发,事务管理等基于并发的一般概念,我会跑一英里。这种行为似乎是正确的。这里没有错误。
Django -并发是Django的一个乐观的锁1实现。 支持Django版本: 1.8.x、1.9.x、1.10.x、1.11.x 它通过UI和Django命令阻止用户在django中进行并发编辑。
这实际上意味着两个用户不能同时修改同一个实例。在刚刚试用的那种浏览器测试中,这种情况永远不会产生!通常发生的情况是,一个或另一个事务通常运行到完成,因为当在本地主机上测试小型数据库时,没有延迟,所有事情都会立即发生。
正确的测试方法是打开单独的变更shell,打开相同的实例并进行编辑,如django并发指南所述。或者用多线程客户端进行测试。
https://stackoverflow.com/questions/43991894
复制相似问题