RabbitMQ,EasyNetQ队列名称

时间:2013-07-07 17:23:58

标签: c# rabbitmq easynetq

我的队列名称是“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);
    }));

1 个答案:

答案 0 :(得分:2)

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

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

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

您可以使用Taking Control Of The SubscriptionId Generation

更改此行为