LOCK
を使用すると、これを自作できます。 テーブル上でトランザクションを設定し、ロックを取得したトランザクションをロールバックしてロックを解除します。 この事前回答
をご覧ください このアプローチの詳細については、そのリンクを参照してください。 3つのpsql
を使用してデモンストレーションしました セッションでは、 psycopg2
を使用するPythonスクリプトであるbashコプロセスでそれを行うことも同様に実行可能です。 およびマルチプロセッシング
またはスレッド
モジュールなど。実行するのはかなり簡単です。 更新 :実際、これは、私がpython3で書いた例です 。
より高度なテストについては、PostgreSQLのソースコードを入手し、 src / test / isolation
の「isolationtester」ツールを使用してください。 これにより、コマンドの複雑な順序付けを行うレシピを作成できます。 PGXS
でのビルドはサポートされていません (そのようなサポートを追加するのはおそらく非常に簡単ですが)したがって、PostgreSQLソースツリー全体をコンパイルする必要がありますが、それは十分に高速です。既存のPostgreSQLに対して実行されるため、コンパイルしたPostgreSQLをインストールする必要はありません。
src / test / isolation /READMEを参照してください。コード>
アイソレーションテスターツールの詳細については。ドキュメントは内部テストツールであるため、地上では少し薄いですが、既存のテストケースは開始に役立つはずです。ニーズに合わせて自由に改善し、パッチを送信してください:)