1

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

有什么简单的方法可以通过标准的 PostgreSQL 安装来实现吗?

如果没有,有没有办法用额外的库来做到这一点?

4

1 回答 1

3

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

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

SELECT ... FOR UPDATE客户端应该在请求成功时从日志表中一一获取请求DELETE

有关更多详细信息,请参阅有关从数据库内发送电子邮件的答案。

于 2012-12-14T00:26:45.120 回答