Postgres触发器打开http连接

时间:2012-12-13 21:21:13

标签: postgresql triggers

每次使用触发器和HTTP GET或POST在Postgres表中进行插入时,我需要ping一些HTTP服务吗?

使用标准的PostgreSQL安装有没有简单的方法来实现它?

如果没有,有没有办法用额外的库来做?

1 个答案:

答案 0 :(得分:2)

您可以使用PL / perlu或PL / pythonu执行此操作。但是,我强烈建议你不要这样做。 DNS问题,服务器问题等将导致PostgreSQL后端停止,严重破坏数据库性能并可能导致您耗尽max_connections。

相反,在发生更改时触发器发送NOTIFY,并将触发器插入详细信息到日志表中。为通知提供客户端应用程序LISTEN,将触发器插入的记录读入日志表,并发出任何适当的HTTP请求。

当请求成功完成后,客户端应使用SELECT ... FOR UPDATEDELETE逐个获取日志表中的请求。

有关详细信息,请参阅this answer about sending email from within the DB