トリガーとHTTPGETまたはPOSTを使用してPostgresテーブルに挿入が発生するたびにHTTPサービスにpingを実行する必要がありますか?
標準のPostgreSQLインストールでそれを達成する簡単な方法はありますか?
ない場合、追加のライブラリでそれを行う方法はありますか?
トリガーとHTTPGETまたはPOSTを使用してPostgresテーブルに挿入が発生するたびにHTTPサービスにpingを実行する必要がありますか?
標準のPostgreSQLインストールでそれを達成する簡単な方法はありますか?
ない場合、追加のライブラリでそれを行う方法はありますか?
これは、PL/perluまたはPL/pythonuを使用して実行できます。ただし、この方法では行わないことを強くお勧めします。DNSの問題、サーバーの問題などにより、PostgreSQLバックエンドが停止し、データベースのパフォーマンスが大幅に低下し、max_connectionsが使い果たされる可能性があります。
代わりにNOTIFY
、変更が発生したときにトリガーにを送信させ、トリガーに詳細をログテーブルに挿入させます。通知用のクライアントアプリケーションLISTEN
を用意し、トリガーによってログテーブルに挿入されたレコードを読み取り、適切なHTTPリクエストを作成します。
SELECT ... FOR UPDATE
クライアントは、リクエストが正常に行われたときに、を使用してログテーブルからリクエストを1つずつ取得する必要がありますDELETE
。
詳細については、DB内からの電子メールの送信に関するこの回答を参照してください。