私はすべてのデータ変更タスクのトランザクションを自分で管理しており、デッドロックの再試行、ロック タイムアウトなどを追加しています。
管理コードの外部でデータを編集できるコードを (偶然であろうとなかろうと) 望んでいません。理想的には、Django のオープン トランザクションを使用してすべての読み取り操作をラップし、残りを管理します。ただし、この開いているトランザクションは、新しい「書き込み」トランザクションが開かれるたびに、ロールバックされるのではなくコミットされます。
Django に基本的なオープン トランザクションを常にロールバックさせる方法はありますか? DB にコミットされる唯一のデータは、私が管理したデータですか?
また、私のプロジェクトは常に HTTP リクエスト内で実行されるとは限らないため、ミドルウェアで管理することはできません。