我正在使用 Django 1.5.1 开发一个网站,我对并发有两个疑问。现在我在开发服务器上运行。
- 当多个用户同时访问网站时,默认情况下,Django 会在不同的执行线程中运行每个请求吗?还是必须在网络服务器(例如 Apache)中进行配置?
- 如果多个用户同时修改同一个对象,我会遇到问题吗?如果是这样,你如何解决这个问题?使用锁?
谢谢你的帮助!
我正在使用 Django 1.5.1 开发一个网站,我对并发有两个疑问。现在我在开发服务器上运行。
谢谢你的帮助!
它的网络服务器特定。如果您将其配置为在不同的进程中运行,则请求将在新进程中处理。如果您配置有线程,它将在线程中。
是的。想象一下,user1 正在查看/编辑对象 A(从 DB 中检索)。user2 删除该对象。然后 user1 尝试保存它。您需要在代码中明确处理此类情况。
1)特定于网络服务器。
2)看看django-concurrency。它使用乐观并发控制模式处理并发编辑。