データの一貫性を確保するために、高い並列性をORM

python2

1.withのtransaction.commit_on_success()トランザクションを開くために

トランザクションが完了するまでロックされたデータベース・オブジェクトを指示する2.使用select_for_update

with transaction.commit_on_success():
    ActivityJoinner.objects.create(activity=activity, sign_type=sign_type,
                                   user=request.user, center=center)
    info = ActivityInfo.objects.select_for_update().get(activity=activity)
    if sign_type == 1:
        info.joinner_sign_num += 1
   else:
        info.volunteer_sign_num += 1
        info.save()
        return Response({"status": res, "data": msg})

おすすめ

転載: www.cnblogs.com/robert-zhou/p/11275041.html