postgresql - 从 postgresql 中的表流式传输数据的有效方法?

标签 postgresql streaming push postgresql-9.5

我有一个日志表,仅附加,其中包含一些我希望流式传输回客户端的数据。

是否存在一种仅使用 PG 而无需轮询从中流式传输数据的方法?

所以我可以得到:

1. Inv.Add 1, T=10
.. some seconds after, the server push?
2. Inv.Add 2, T=15

最佳答案

添加一个调用 NOTIFY 的触发器然后让您的客户收听该 channel 。

这里有一些关于 Listen 和 Notify 的重要警告,但它们的作用正是按照您的意愿进行。例如,没有针对谁可以发送通知的安全权限检查,因此不要依赖负载来做任何事情。

我的方法是:

  1. LISTEN(首先防止竞争条件)
  2. 阅读表格。存储最新的时间戳、序列号或其他增量值
  3. 收到通知后,查询表以获取所有后续行。永远重复。

同样,您可以通过通知发送行数据,但是如果他们可以连接到数据库,那么任何人都可以发送您的应用行数据,这让我觉得有点危险。

关于postgresql - 从 postgresql 中的表流式传输数据的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872213/

相关文章:

javascript - 在 Google map 中推送新的 LatLng

string - 用空值替换空字符串

SQL Full outer join 或替代解决方案

sql - 基于两列获取记录。如果两列具有相同的值,则一条记录,否则 2 条记录

将音频从 Node.js 服务器流式传输到 HTML5 <audio> 标签

android - 如何从服务器推送到 Google TV?

node.js - sails postgresql 多对多关联不起作用

android - 使用 InputStream 将 Intent 发送到媒体播放器应用程序

javascript - axios 在服务器之间传输数据

Javascript - 将具有相同类的元素插入数组并在循环中使用每个元素