【问题标题】:How to fetch an existing Exchange or Queue in EasyNetQ?如何在 EasyNetQ 中获取现有的 Exchange 或队列?
【发布时间】:2019-10-01 06:27:46
【问题描述】:
我正在使用 EasyNetQ,我想知道如何在不事先订阅的情况下获取现有的 IExchange 和 IQueue?
在IAdvanceBus我只能看到:
ExchangeDeclareAsync
QueueDeclareAsync
但我不确定这些是否会覆盖现有队列或同名交换?
另外,在尝试获取/声明之前,我如何确定该队列或交换存在?
【问题讨论】:
标签:
c#
.net-core
rabbitmq
easynetq
【解决方案1】:
如果您在 RabbitMQ 中激活了管理插件,您可以使用 EasyNetQ 的客户端作为管理 API。 Documentation.
例如:
var queues = managementClient.GetQueues();
foreach (Queue queue in queues)
{
Console.Out.WriteLine("queue.Name = {0}", queue.Name);
}
但是,如果您重新声明队列或交换,则不会覆盖它。什么都没有发生。