Django Rest框架视图集/数据库锁

2024-06-02 09:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,所以我正在使用Django Rest Framework 3.1,我想知道是否可以在每个用户的基础上“保护”我的视图集/数据库不被写入?在

换句话说,如果一个用户正在保存另一个用户无法保存的内容,它要么等待第一个用户完成,要么返回某种错误。在

我试着寻找这个答案,但找不到。在

这个行为已经实现了吗?如果没有,我如何在实践中做到这一点?在

更新经过更多思考:

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

干杯


Tags: django答案用户redisrest数据库内容队列
1条回答
网友
1楼 · 发布于 2024-06-02 09:13:29

我想Database transactions会给你带来一些安全感。如果在事务中包装了多个数据库操作,则它们将一起应用于数据库,因此操作序列不会中途失败,并使数据库处于无效状态。在

其他用户将看到操作的结果,就好像它们是一次应用的,或者根本不应用(在出现错误的情况下)。在

相关问题 更多 >