Я только начинаю играть с автобусом nservice и пытаюсь получить публикацию. У меня есть слушатель, который, кажется, пропускает некоторые сообщения. Он настраивается сСлушатель NServiceBus Пропущенные сообщения
<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 секунд, и слушатель все равно не получает все сообщения.
Это было именно это, спасибо. – stimms