Django 1.5 select_for_update被认为是脆弱的设计

特伦特

Django文档状态

如果您依靠“自动事务”在select_for_update()和随后的写操作之间提供锁定(这是一个非常脆弱的设计,但仍然可行),则必须将相关代码包装在atomic()中。从Django 1.6.3开始,在自动提交模式下使用select_for_update()执行查询将引发TransactionManagementError。

为什么认为这是脆弱的?我以为这将导致适当的交易性。

特伦特

Aymeric通过电子邮件澄清说,这种设计很脆弱,因为它依赖于Django 1.5的隐式事务形成的隐式事务边界。

select_for_update(...)
more_code()
save()

该代码在简单的情况下可以工作,但是如果more_code()导致对数据库的写操作,则事务将关闭,从而产生意外的行为。

强迫用户指定交易边界也会导致代码更清晰。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么清除由Django中的select_for_update创建的锁?

来自分类Dev

并发进程中的Django select_for_update函数

来自分类Dev

Django模型设计-1个或多个表

来自分类Dev

Django 1.3中的select_for_update类型的功能可避免出现竞争情况

来自分类Dev

celery任务和竞赛条件中的Django select_for_update,并且唯一

来自分类Dev

如何将Django DateTimeField默认为utcnow()+ 1天?

来自分类Dev

如何解决这个错误?django + celery + rabbitmq + mysql + redis中的“ RestartFreqExceeded:5 in 1s”

来自分类Dev

如何解决这个错误?django + celery + rabbitmq + mysql + redis中的“ RestartFreqExceeded:5 in 1s”

来自分类Dev

当在同一条记录上使用两次Django的select_for_update死锁吗?

来自分类Dev

为什么SHA-1被认为是不安全的?

来自分类Dev

运行恒定次数的循环是否被认为是大-Oh(1)?

来自分类Dev

了解“ 5 1”的类型

来自分类Dev

Django教程1错误

来自分类Dev

的Django 2模型1

来自分类Dev

设计不同的类以计算和打印以下序列(1/2)+(2/3)+(3/4)+(4/5)+(5/6)+ ......的总和。 ... +((n-1)/ n)

来自分类Dev

Django,避免N + 1查询

来自分类Dev

使用vnext(ASP.NET 5 RC1 Update1)在Mac中设置托管环境变量

来自分类Dev

安装ASP.NET 5 RC1之后是否可以安装Visual Studio 2015 Update 1?

来自分类Dev

系列:1 + 1/3 + 1/5 + ...最多N个词

来自分类Dev

我有Visual Studio 2013 Update 1,但看不到MVC 5项目模板?

来自分类Dev

如何在“ SELECT * FROM PRODUCT LIMIT CAST(选择CAST('1'AS UNSIGNED)),5”中转换输入?

来自分类Dev

mysql union select where table1 field3 = table2 field5

来自分类Dev

django 1.6 django-wysihtml5集成

来自分类Dev

Safari中的HTML5视频-Django

来自分类Dev

PyCharm 5找不到Django 1.9模板

来自分类Dev

Django将数字渲染为5星级

来自分类Dev

mdbootstrap 5在Django 2.1.15中未显示

来自分类Dev

如何在Django中集成Foundation 5

来自分类Dev

每5秒更新Django模板失败

Related 相关文章

  1. 1

    什么清除由Django中的select_for_update创建的锁?

  2. 2

    并发进程中的Django select_for_update函数

  3. 3

    Django模型设计-1个或多个表

  4. 4

    Django 1.3中的select_for_update类型的功能可避免出现竞争情况

  5. 5

    celery任务和竞赛条件中的Django select_for_update,并且唯一

  6. 6

    如何将Django DateTimeField默认为utcnow()+ 1天?

  7. 7

    如何解决这个错误?django + celery + rabbitmq + mysql + redis中的“ RestartFreqExceeded:5 in 1s”

  8. 8

    如何解决这个错误?django + celery + rabbitmq + mysql + redis中的“ RestartFreqExceeded:5 in 1s”

  9. 9

    当在同一条记录上使用两次Django的select_for_update死锁吗?

  10. 10

    为什么SHA-1被认为是不安全的?

  11. 11

    运行恒定次数的循环是否被认为是大-Oh(1)?

  12. 12

    了解“ 5 1”的类型

  13. 13

    Django教程1错误

  14. 14

    的Django 2模型1

  15. 15

    设计不同的类以计算和打印以下序列(1/2)+(2/3)+(3/4)+(4/5)+(5/6)+ ......的总和。 ... +((n-1)/ n)

  16. 16

    Django,避免N + 1查询

  17. 17

    使用vnext(ASP.NET 5 RC1 Update1)在Mac中设置托管环境变量

  18. 18

    安装ASP.NET 5 RC1之后是否可以安装Visual Studio 2015 Update 1?

  19. 19

    系列:1 + 1/3 + 1/5 + ...最多N个词

  20. 20

    我有Visual Studio 2013 Update 1,但看不到MVC 5项目模板?

  21. 21

    如何在“ SELECT * FROM PRODUCT LIMIT CAST(选择CAST('1'AS UNSIGNED)),5”中转换输入?

  22. 22

    mysql union select where table1 field3 = table2 field5

  23. 23

    django 1.6 django-wysihtml5集成

  24. 24

    Safari中的HTML5视频-Django

  25. 25

    PyCharm 5找不到Django 1.9模板

  26. 26

    Django将数字渲染为5星级

  27. 27

    mdbootstrap 5在Django 2.1.15中未显示

  28. 28

    如何在Django中集成Foundation 5

  29. 29

    每5秒更新Django模板失败

热门标签

归档