我刚开始玩 nservice bus 并试图让发布工作。我有一个似乎缺少一些消息的听众。它配置有
<MsmqTransportConfig
InputQueue="InformMessages"
ErrorQueue="error"
NumberOfWorkerThreads="5"
MaxRetries="5"
/>
有趣的是,如果我将 NumberOfWorkerThreads 设置为 1,它会始终错过所有其他消息。对于较大的值,它似乎不太确定。在我的消息处理程序中,我有
class MessageHandler : IMessageHandler<ICourseRegister>
{
public void Handle(ICourseRegister message)
{
Console.WriteLine("Message dun got gotted");
Console.WriteLine("Course name is: " + message.CourseName);
}
private IBus bus;
public IBus Bus
{
set { this.bus = value; }
}
}
并且总线配置有
var bus = NServiceBus.Configure.With()
.SpringBuilder()
.XmlSerializer()
.MsmqTransport()
.IsTransactional(true)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.LoadMessageHandlers()
.CreateBus()
.Start();
有什么我需要做的和 Handler 的结束,以便它被释放以准备接收下一条消息或我需要做的一些配置,以便在处理程序忙时有一个客户端队列来保留消息。发送消息之间的时间似乎无关紧要,可能是 20 秒,但侦听器仍然没有收到所有消息。