在RabbitMQ中清除队列

Sou*_*osh 3 c# rabbitmq

我正在使用RabbitMQ进行日常交易。我的使用者是部署在多台计算机上的.Net桌面应用程序。每天,交易仅在特定时间段内被排队。除此之外,任何新交易都需要硬停。我设法停止将新事务发送到队列。但是,队列中的现有事务也需要刷新,以便不发送给任何使用者。我尝试搜索此内容,但除了两个选项外,没有任何清除队列的解决方案-

  • 每天删除并重新创建队列
  • 停止队列中的所有使用者

这两种方法都可以实现,但是需要在我的系统上进行大量更改。我想知道是否有更好的方法。

小智 7

在C#中,您可以像这样清除队列

            ConnectionFactory factory = new ConnectionFactory();

            factory.HostName = "localhost";
            factory.UserName = "guest";
            factory.Password = "guest";

            using (var connection = factory.CreateConnection())
            {
                using (var channel = connection.CreateModel())
                {
                    channel.QueuePurge(queueName);
                }

            }
Run Code Online (Sandbox Code Playgroud)