【发布时间】:2010-12-03 20:34:59
【问题描述】:
我希望能够让我的订阅者处理两个不同的消息流。我预计每种消息类型都会有一个 MSMQ 队列,但我看不到如何在我的 .config 文件的 MsmqTransportConfig 部分中指定多个 InputQueue。
这是我的订阅者的非 XML 配置:
Configure.With(new[] { typeof(EventMessage), typeof(EventMessageHandler), typeof(NServiceBus.Unicast.Transport.CompletionMessage) })
.CustomConfigurationSource(new UserConfigurationSource()
.Register(() => new MsmqTransportConfig { InputQueue = "Subscriber1InputQueue", ErrorQueue = "error", NumberOfWorkerThreads = 1, MaxRetries = 5 }))
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.UnicastBus()
.DoNotAutoSubscribe()
.LoadMessageHandlers()
.CreateBus()
.Start();
编辑:我似乎从不同的人那里得到了不同的答案。谢谢大家!我想我有我的问题的答案,那就是:使用 NServiceBus 的进程(无论是发布者还是订阅者)只能在 SINGLE 队列上接收消息。对我来说,这是一个不必要的限制,不幸的是 NServiceBus 以这种方式工作。我不想有多个进程来接收消息,也不想让它们都进入同一个队列。如果特定消息处理程序出现问题,我希望只看到该特定消息类型的错误队列大小增加。我认为它可以更好地了解系统中发生的事情。
【问题讨论】:
-
+1 - 这是一个很好的问题,也是我正在努力解决的问题。
标签: nservicebus