Я изучаю NServiceBus, и я не уверен, как (или даже если) я мог бы использовать его для обработки этого сценария:
У меня есть несколько клиентов, отправляющих рабочие запросы, которые дистрибьютор передает работникам.Работа займет много времени, и я хотел бы, чтобы работники сообщали о проделанной работе клиенту, который отправил первоначальный запрос.
Я рассмотрел полнодуплексный образец, а также как добавить распределитель к этому образцу .У меня это работает, но когда я изменяю их, чтобы они отвечали серией сообщений о ходе выполнения (с задержкой между сообщениями, как показано в коде, показанном ниже), клиент получает все сообщения о ходе выполнения одновременно.
public class RequestDataMessageHandler : IHandleMessages<RequestDataMessage>
{
public IBus Bus { get; set; }
public void Handle(RequestDataMessage message)
{
for (var i = 0; i < 10; i++)
{
var count = i;
var response = this.Bus.CreateInstance<DataResponseMessage>(m =>
{
m.DataId = message.DataId;
m.Progress = count * 10;
});
this.Bus.Reply(response);
Thread.Sleep(1000);
}
}
}
Я подозреваю, что не понял чего-то базового о том, как работает NServiceBus.Может кто-нибудь объяснить, где я ошибся, или указать на некоторые примеры и / или документацию?