5

pyscopg2 (python Postgres ドライバー) を使用してクエリステートメントの実行をキャンセルするにはどうすればよいでしょうか?

例として、次のコードがあるとします。

import psycopg2
cnx_string = "something_appropriate"

conn = psycopg2.connect(cnx_string)
cur = conn.cursor()
cur.execute("long_running_query")

次に、別のスレッドからその長時間実行されているクエリの実行をキャンセルしたい - これを行うには、接続/カーソルオブジェクトでどのメソッドを呼び出す必要がありますか?

4

3 に答える 3

7

pg_cancel_backend(pid)別の接続で PostgreSQL 関数を呼び出すことにより、クエリをキャンセルできます。

キャンセルするバックエンドの PID はconnection.get_backend_pid()psycopg2 (バージョン 2.0.8 から利用可能) のメソッドから知ることができます。

于 2010-02-16T18:03:42.090 に答える
0

psycopg2 の非同期実行サポートは削除されました。

py-postgresql とそのトランザクション(py3k です) を使用できる場合、内部実装は非同期であり、中断をサポートします。

于 2010-01-11T16:50:15.403 に答える