gpt4 book ai didi

django - 什么清除了 Django 中 select_for_update 创建的锁?

转载 作者:行者123 更新时间:2023-12-04 02:07:37 27 4
gpt4 key购买 nike

如果我执行 select_for_update,该锁何时/如何释放?一些示例代码:

for rec_id in list(1,2,3):
record = MyModel.objects.select_for_update().get(pk=rec_id)
# Do several things to this record
record.save()
save()之后锁是否被释放?还是在 View 返回并且整个事务完成后被释放?如何控制锁的粒度?

文档似乎没有说: https://docs.djangoproject.com/en/1.6/ref/models/querysets/#select-for-update

最佳答案

该锁在交易期间处于事件状态,由您控制。所以你通过控制事务的粒度来控制锁的粒度,使用常用的方法:@transaction.atomic , with transaction.atomic() , ATOMIC_REQUESTS = True等。请参阅 transaction documentation .

关于django - 什么清除了 Django 中 select_for_update 创建的锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21958754/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com