NServiceBus を調査していますが、このシナリオを処理するために 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 がどのように機能するかについて、基本的なことを理解していないのではないかと思います。誰かが私が間違っている場所を説明したり、いくつかの例やドキュメントを教えてくれませんか?