Django 1.6 提议@transaction.atomic
作为从 1.5 开始对事务管理进行改造的一部分。
我有一个由 Django 管理命令调用的函数,该命令又由 cron 调用,即在这种情况下没有触发事务的 HTTP 请求。片段:
from django.db import transaction
@transaction.commit_on_success
def my_function():
# code here
在上面的代码块commit_on_success
中,所有的工作都使用一个事务来完成my_function
。
替换是否会@transaction.commit_on_success
导致@transaction.atomic
相同的行为?@transaction.atomic
文档状态:
原子性是数据库事务的定义属性。atomic 允许我们创建一个代码块,在其中保证数据库的原子性。如果代码块成功完成,则将更改提交到数据库。如果出现异常,则回滚更改。
我认为它们会导致相同的行为;正确的?