Postgres 触发器打开 http 连接

Seb*_*oli 3 postgresql triggers

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

有没有简单的方法可以通过标准 PostgreSQL 安装来实现这一点?

如果没有,有什么办法可以用额外的库来做到这一点吗?

Cra*_*ger 5

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

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

当请求成功时,客户端应该使用SELECT ... FOR UPDATE和它从日志表中一一获取请求。DELETE

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