我是PostgreSQL LISTEN
/ NOTIFY
的新功能。在LISTEN
命令之后,
LISTEN mychannel;
我们可以通过NOTIFY
消息到频道。
NOTIFY mychannel 'Hello';
NOTIFY
消息保存在数据库的某个地方。哪里?我可以使用表中的select查询来查看消息吗?NOTIFY
3或5消息,这些消息保存在队列中。我使用编程语言运行LISTEN
命令,处理所有消息并从队列中删除消息。如果我的客户端崩溃,所有消息都将丢失。我怎么解决这个问题?我担心你会误解LISTEN
。它用于活动会话之间的异步通信。消息不会存储在任何地方。
如果您希望在应用程序的两个部分之间进行通信的持久数据结构,那么您可能正在寻找队列。
由于队列在关系数据库中很难实现,我建议您使用PostgreSQL现有的第三方实现之一。
LISTEN
/ NOTIFY
可以是这种队列实现的一部分,使收件人无需定期轮询队列。