Django Transaction:
目的:保证操作的原子性,操作必须全部成功,否则就会回滚操作。
用法:
- 装饰器
@transaction.commit_on_success
# do something
- with语句
with transaction.commit_on_success():
# do something
- 函数调用方式
transaction.commit_on_success(func)
Django 数据库加锁
- 乐观锁:在并发情况较少时使用,先对数据库进行操作,然后在操作后判断数据库是否与操作前状态相同(即没有被其他过程修改过),如果被修改则放弃此次操作。
- 悲观锁:在并发情况较多时使用,在操作前对数据库加锁。
MyModel.objects.select_for_update().sql_func()
参考资料:
https://www.cnblogs.com/junneyang/p/6297177.html
https://blog.csdn.net/m0_37714245/article/details/82027543
网友评论