C# 尽管重新安装了Erlang和RabbitMQ,但未删除RabbitMQ队列

C# 尽管重新安装了Erlang和RabbitMQ,但未删除RabbitMQ队列,c#,rabbitmq,C#,Rabbitmq,RabbitMQ版本:3.8.2 Erlang 22.2 由于一些问题,我不得不在服务器上重新安装RabbitMQ和Erlang 尽管重新安装了应用程序,但来自上一个实例的队列仍然存在,并且正在创建新的队列(队列名称由Guid指定,因此是唯一的) 这是正常的行为吗? 如何删除没有消费者的旧队列?我最后排了25000个队:| 感谢您根据您对队列的使用情况,有一个用于删除队列的选项自动删除 队列声明-来自文档: 位自动删除 如果已设置,则当所有使用者都使用完队列时,将删除该队列。可以显式取消最后一个

RabbitMQ版本:3.8.2 Erlang 22.2

由于一些问题,我不得不在服务器上重新安装RabbitMQ和Erlang

尽管重新安装了应用程序,但来自上一个实例的队列仍然存在,并且正在创建新的队列(队列名称由Guid指定,因此是唯一的)

这是正常的行为吗? 如何删除没有消费者的旧队列?我最后排了25000个队:|


感谢您

根据您对队列的使用情况,有一个用于删除队列的选项
自动删除

队列声明-来自文档:

位自动删除 如果已设置,则当所有使用者都使用完队列时,将删除该队列。可以显式取消最后一个使用者,也可以因为其通道已关闭而取消最后一个使用者。如果队列中没有消费者,则不会将其删除。应用程序可以像往常一样使用delete方法显式删除自动删除队列

在这里阅读更多信息:

所以,我找到了答案。 显然,可以从RabbitMQ仪表板设置一个策略来删除非活动队列

该策略是过期的,并且可以为队列和交换设置该策略(尽管该策略似乎只删除队列)


此策略在规定的非活动时间后删除所有队列(没有消费者订阅队列)

您能在管理控制台中看到旧队列吗?@FrankNielsen,是的,它们都列在控制台的队列选项卡中。谢谢您的及时响应。我尝试在C#中声明AutoDelete属性为true,但是否可以通过管理控制台将此自动删除设置为策略?不,它不是可以在管理控制台上创建时添加的参数的一部分,因此只能在运行时添加。但是试着解释一下你的设置,以及你为什么这样做。也许可以用另一种方式完成。我正在通过Masstransit使用RabbitMQ。我认为我不能直接访问RabbitMQ的declare()方法。但是,我可以将IRabbitMqBusFactoryConfigurators的AutoDelete属性设置为true。这样行吗?您应该考虑的问题是:如果masstransit关闭并且所有队列都已自动删除,您的解决方案能否继续运行?为什么对队列使用随机名称?