RabbitMQ,EasyNetQ队列名称

本文关键字:队列 EasyNetQ RabbitMQ | 更新日期: 2023-09-27 18:21:28

我的队列名称是"TaskQueue",但当我运行代码时,创建一个新的队列,名称是"System_String:mscorlib_TaskQueue"。下面是我的订阅者代码。我的错是什么?

var bus = RabbitHutch.CreateBus("host=localhost;username=guest;password=guest");
bus.SubscribeAsync<string>("TaskQueue", (msg) =>
    Task.Factory.StartNew(() =>
    {
       Console.WriteLine("Got Message: {0}", msg);
    }));

RabbitMQ,EasyNetQ队列名称

基本上你做得对。但是,TaskQueue是订阅id,不是生成的队列的名称。

默认情况下,EasyNetQ将使用订阅id消息类型来生成队列名称。因此,它被命名为System_String:mscorlib_TaskQueue因此,所有id为TaskQueue的订阅都将被视为并发消费者。

请参阅https://github.com/EasyNetQ/EasyNetQ/wiki/Subscribe

您可以通过控制SubscriptionId生成来更改此行为