鉴于此代码,我希望不会创建Queue mq:Incr.priorityq。我想知道这个设置是否只是禁用了所说的队列,但是它仍然被创建了吗?
这来自以下unit tests
public class RabbitMqRequestReplyTests : MqRequestReplyTests
{
public override IMessageService CreateMqServer(int retryCount = 1)
{
return new RabbitMqServer("cdev-9010.example.com", "test", "test")
{
DisablePriorityQueues = true,
RetryCount = retryCount
};
}
}
答案 0 :(得分:1)
DisablePriorityQueues = true
选项可防止任何后台线程产生监听优先级队列from the documentation:
注册完所有处理程序后,您可以通过启动MQ服务器来开始侦听消息:
mqServer.Start();
为每个处理程序启动MQ服务器生成2个线程,一个用于收听消息收件箱mq:Hello.inq
,另一个用于侦听优先级队列,位于mq:Hello.priorityq
。
注意:您可以通过设置 mqServer.DisablePriorityQueues = true ,通过白名单列出要为 mqServer.PriortyQueuesWhitelist 启用优先级队列的邮件,或者将其全部停用
即。它不会阻止创建队列,客户端仍然可以将消息发送到优先级队列,这只意味着这个mqServer
不会有任何线程监听和处理在优先级队列上发送的消息