1

postgres クライアントが実行時間の長いクエリを実行しています。クライアントは SIGTERM を受け取ります。理想的には、クライアントが SIGTERM をトラップし、a を送信してクエリをクリーンアップして終了するようにしたいと考えていますpg_cancel_backend(pid)

これは、クライアント/サーバー データベース アーキテクチャの一般的な懸念事項のようですが、解決策が見つかりません。代わりに、クエリは完了するまで続行され、不要なリソースが消費されます。

クライアントがバックエンド クエリの PID を確実に特定するにはどうすればよいでしょうか? (バックエンド クエリをインタラクティブに表示し、発行されたクエリと一致するように見えるものを選択するという意味ではありません。) たとえば、PID は永続的なデータベース接続に関連付けられていますか?

psqlctrl-C が押されたときに使用すると、これはどのように機能しますか?

4

1 に答える 1

1

現在の接続pg_backend_pid()を取得するために使用できます。PID

詳細はこちら

于 2012-12-17T17:20:16.743 に答える