0

Userフィールド付きのDjangoモデルがbalanceあり、それを維持しbalance_last_updated DateTimeFieldています。

競合状態のない残高を更新するには、アトミックに読み取りbalance_last_updated、Djangoビューに設定する必要があります。そうすれば、バランスを更新するスレッドは、異なる期間に更新します(正しいですか?)。

どうすればよいですか?Djangoトランザクションをサポートしていないように見えるMySQLMyISAMテーブルを使用していることに注意してください。

4

1 に答える 1

2

Django 1.4 を使用している場合は、select_for_updateこれを実現するために使用できます。ただし、データベース バックエンドがトランザクションをサポートしている場合のみ。MyISAM はそうではないので、原子性 (または一般的に ACID) がプロジェクトにとって重要である場合は、InnoDB エンジンまたは PostgreSQL に切り替えることをお勧めします。

于 2012-09-18T13:20:10.303 に答える