我正在使用EasyNetQ,并且想知道如何在不预先订阅的情况下获取现有的IExchange
和IQueue
?
在IAdvanceBus
中,我只能看到:
ExchangeDeclareAsync
QueueDeclareAsync
但是我真的不确定它们是否会覆盖现有队列或使用相同名称进行交换?
在尝试获取/声明队列或交换之前,我如何确保该队列或交换存在?
答案 0 :(得分:0)
如果您在RabbitMQ中激活了管理插件,则可以将EasyNetQ的客户端用于管理API。 Documentation。
例如:
var queues = managementClient.GetQueues();
foreach (Queue queue in queues)
{
Console.Out.WriteLine("queue.Name = {0}", queue.Name);
}
但是,如果您重新声明队列,则不会覆盖该队列或交换。什么都没发生。