gpt4 book ai didi

java - postgresql 通知 channel

转载 作者:行者123 更新时间:2023-12-01 09:00:56 31 4
gpt4 key购买 nike

我目前正在使用postgresql的Notify/Listen机制,并尝试将其与触发器结合起来以检测数据库表中的更改并将其发送到用Java编写的外部观察器。在我的测试过程中,我发现如果没有连接,由通知或监听创建的 channel 似乎不会持续。例如,如果通知程序执行 NOTIFY mymessage, 'blah-blah' sql 脚本,然后关闭连接,如果当前没有监听器监听 channel “mymessage”,则该 channel 将被删除,这意味着有效负载“blah-blah”将会丢失。

有谁知道如何配置postgresql数据库以使创建的通知 channel 永久化以防止消息丢失?或者,有谁知道如何防止 postgresql 表中检测到的事件丢失?

谢谢

最佳答案

docs状态:

all the sessions currently listening on that notification channel are notified

(强调我的)。所以不 - 无需配置任何内容。

如果您想将某些消息保存在某处以便其他 session 稍后可以读取它,您应该使用公共(public)可读的表,例如:(message_id bigint, message_text text)。当然,它需要更多的关系,例如 (last_listened_message_id bigint, pid int) ,而不是一次又一次地读取所有消息。

如果您想模拟 channel ,您应该创建更多类似的表格或向上面的两个表格添加列...

关于java - postgresql 通知 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41670759/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com