每次使用触发器和HTTP GET或POST在Postgres表中进行插入时,我需要ping一些HTTP服务吗?
使用标准的PostgreSQL安装有没有简单的方法来实现它?
如果没有,有没有办法用额外的库来做?
答案 0 :(得分:2)
您可以使用PL / perlu或PL / pythonu执行此操作。但是,我强烈建议你不要这样做。 DNS问题,服务器问题等将导致PostgreSQL后端停止,严重破坏数据库性能并可能导致您耗尽max_connections。
相反,在发生更改时触发器发送NOTIFY
,并将触发器插入详细信息到日志表中。为通知提供客户端应用程序LISTEN
,将触发器插入的记录读入日志表,并发出任何适当的HTTP请求。
当请求成功完成后,客户端应使用SELECT ... FOR UPDATE
和DELETE
逐个获取日志表中的请求。
有关详细信息,请参阅this answer about sending email from within the DB。