我有一个日志表,只追加,其中有些数据我希望流回到客户端。
是否存在只使用PG而不轮询的数据流的方法?
所以我可以得到:

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

最佳答案

添加一个调用NOTIFY的触发器,然后让您的客户listen访问该频道。
这里有一些关于倾听和通知的重要警告,但它们是为了做你想做的事情。例如,没有安全权限检查谁可以发送通知,因此不依赖有效负载。
我的方法是:
听(首先要防止比赛条件)
读这张桌子。存储最新的时间戳、序列号或其他递增值
当收到通知时,查询表中所有后续行。永远重复。
同样,你可以通过notify发送行数据,但是如果任何人可以连接到数据库,那么他们都可以发送你的应用行数据,这让我觉得有点危险。

07-24 09:45
查看更多