我正在尝试强制RabbitMQ队列在Rabbit服务重启后继续存在,同时在服务重启完成后强制它们重用相同的名称。
我们正在使用我们的DI容器传递消息消费者
return new List<Type>
{
typeof(Consumer1), typeof(Consumer2), typeof(Consumer3), typeof(Consumer4)
};
然后通过
将该集合传递给配置t => _kernel.Get(t));
然后以这种方式注册
cfg.ReceiveEndpoint(host, e =>
{
foreach (var type in consumerTypes)
{
e.Consumer(type, getConsumer);
}
});
这使得每次重新启动时都会重新创建队列,名称中包含GUID。
如果我们尝试这样做:
cfg.ReceiveEndpoint(host, e =>
{
foreach (var type in consumerTypes)
{
e.Consumer(type, getConsumer);
e.Durable = true;
e.AutoDelete = false;
}
});
然后队列是持久的,但是在服务重启时不会创建。
我们如何为每个消费者指定队列名称?
答案 0 :(得分:0)
解决了这个问题:
.table>tbody>tr>td, .table>tbody>tr>th,
.table>tfoot>tr>td, .table>tfoot>tr>th,
.table>thead>tr>td, .table>thead>tr>th
{
border: 0
}