我想将PostgreSQL中的所有通知转发到RabbitMQ中的任务队列,其名称与NOTIFY channel
中给出的通道相同。 PostgreSQL是否有类似LISTEN *
的内容?
检查Skeeter的来源似乎可能会感兴趣PQnotifies
。 PostgreSQL's documentation on libpq还提到PQconsumeInput
是一种消费服务器输入的方法。来自文档:
PQconsumeInput通常返回1表示“无错误”,但如果遇到某种麻烦则返回0(在这种情况下可以查询PQerrorMessage)。请注意,结果并未说明是否实际收集了任何输入数据。在调用PQconsumeInput之后,应用程序可以检查PQisBusy和/或PQnotifies以查看其状态是否已更改。
我是在正确的道路上吗?由于我使用.NET,我不想写任何C,所以欢迎任何建议。
我已经尝试pgsql-listen-exchange,但要么我做错了,要么插件不能用于RabbitMQ 3.6(只有3.5版本)。我创建了一个issue。
特定于RabbitMQ:作为从PostgreSQL中侦听所有内容的替代方法,我想我可以创建一个交换并为队列进行轮询,并为每个队列创建一个侦听器。也会考虑这个。