2

有人可以解释一下isExclusiveEasyNetQ.Topology.Queue 类型的构造函数参数的使用。

注意:此类型需要实例化才能使用高级 API 删除队列。

4

1 回答 1

2

来自AMQP 文档

“独占队列只能由当前连接访问,并在该连接关闭时被删除。不允许其他连接被动声明独占队列。”

在删除队列之前检查队列是否存在是个好主意。进行被动声明(如果队列不存在则不会创建队列)将返回一个 IQueue 实例,然后您可以使用该实例将其删除,并且您不必担心 isExclusive 参数:

// may throw if queue doesn't exist
var queue = advancedBus.QueueDeclare("my.queue.name", passive = true);
advancedBus.QueueDelete(queue);

作为旁白。IQueue 的 isExclusive 参数未在 IAdvancedBus.Delete(..) 方法中使用,因此您可以愉快地忽略它(需要注意的是,这可能会在未来的版本中发生变化)。

于 2014-02-17T10:38:45.310 回答