我是PostgreSQL LISTEN
/ NOTIFY
功能的新手。在LISTEN
命令之后,
LISTEN mychannel;
我们可以NOTIFY
条消息发送到该频道。
NOTIFY mychannel 'Hello';
这条NOTIFY
消息保存在数据库中的某个位置。哪里?我可以使用表格中的选择查询来查看消息吗?
如果我NOTIFY
3或5条消息被保存在队列中。我使用编程语言运行LISTEN
命令,处理了所有消息,并从队列中删除了消息。如果我的客户端崩溃了,所有消息都将丢失。我该如何解决这个问题?
答案 0 :(得分:1)
恐怕您会误解LISTEN
。它用于 active 会话之间的异步通信。邮件不会存储在任何地方。
如果要在应用程序的两个部分之间进行通信的持久性dara结构,则可能正在寻找队列。
由于众所周知,在关系数据库中很难实现队列,因此我建议您使用现有的PostgreSQL第三方实现之一。
LISTEN
/ NOTIFY
可以成为这种队列实现的一部分,从而使接收者不必定期轮询队列。