相关疑难解决方法(0)

django中计数器的原子增量

我试图在Django中以原子方式递增一个简单的计数器.我的代码看起来像这样:

from models import Counter
from django.db import transaction

@transaction.commit_on_success
def increment_counter(name):
    counter = Counter.objects.get_or_create(name = name)[0]
    counter.count += 1
    counter.save()
Run Code Online (Sandbox Code Playgroud)

如果我正确理解Django,这应该将函数包装在事务中并使增量原子化.但它不起作用,并且在计数器更新中存在竞争条件.如何使这些代码成为线程安全的?

python django transactions race-condition

51
推荐指数
5
解决办法
3万
查看次数

标签 统计

django ×1

python ×1

race-condition ×1

transactions ×1