Django Rest Framework视图集/数据库锁

问题描述 投票:0回答:1

[嗨,所以我正在使用Django Rest Framework 3.1,我想知道是否有可能“保护”我的视图集/数据库以防止每个用户进行写操作?

换句话说,如果一个用户正在保存某些东西,而另一个用户则无法保存,它会等到第一个用户完成操作或返回某种错误。

我尝试寻找此答案,但找不到。

此行为已经实施吗?如果没有,我如何在实践中实现?

UPDATE经过更多思考:

这只是一个理论,还需要更多思考,但是如果我们使用队列(Redis或Rabbitmq),我们可以将所有同步写请求放入队列中,而不是立即处理它们并与一些用户特定的锁变量一起使用(也许在用户会话数据库表中),我们可以询问我们前面是否有属于同一支持者的用户,以及这些用户是否已完成写入更新(使用锁)

欢呼声

python django rest django-rest-framework restful-architecture
1个回答
0
投票

Database transactions将提供您正在寻找的一些安全性,我认为。如果将多个数据库操作包装在一个事务中,则它们将一起应用于数据库,因此一系列操作不会在过程中途失败并使数据库保持无效状态。

其他用户将看到操作结果,就像是一次应用还是根本没有应用(在发生错误的情况下。)>]

© www.soinside.com 2019 - 2024. All rights reserved.