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()
私が Django を正しく理解していれば、関数をトランザクションでラップし、インクリメントをアトミックにする必要があります。しかし、それは機能せず、カウンターの更新に競合状態があります。このコードをスレッドセーフにするにはどうすればよいですか?