私の Django
プロジェクトは、mysql
および InnoDB
エンジンを使用します。以下に示すようなテーブルがあります。queue
フィールドのデフォルト値は 0
私には 2 つのプロセスがあります。1 つは、テーブル内の最大キューに基づいてレコードを挿入することです。
リーリー別のプロセスでは、queue
が 0 に等しくないレコードごとに、queue
の値を 1
ここで私が気にしているのは、これら 2 つのプロセスが同時に発生するかどうかです。たとえば、後続のプロセスで各値をデクリメントしたい場合です。同時に、最初のプロセスで新しい値が挿入されます。この場合、多少の誤差が生じる可能性がございます。 ###どうすればいいですか?誰でも良いアイデアを持っています、事前に感謝します。
これには select_for_update() a> を使用できます。これにより、トランザクションが終了するまで更新中のレコードがロックされます
リーリー