2
건너 뛴 대기열 (mtSubscriber_creditAuthRequest_queue_skipped)에 응답 메시지 (CreditAuthorizationResponse)가 표시되는 이유를 이해하는 사람이 있습니까? 보낸 사람이 예상대로 응답을 받고 있지만 건너 뛴 대기열로 이동하고 있습니다.건너 뛴 대기열에있는 메시지 가져 오기
I했습니다 만든 생략 큐에가는 메시지를 제외하고 예상대로 작동 다음 소비자 :
private async Task SendCreditAuthRequestAsync(int numberToSend)
{
for (int i = 0; i < numberToSend; i++)
{
var cardNumber = generateCardNumber();
await SendRequestAsync(new CreditAuthorizationRequest(cardNumber), "mtSubscriber_creditAuthRequest_queue");
await WriteOutputAsync($"Sent credit auth request for card {cardNumber}.");
}
}
: 어디 요청을 보내고있다 여기
class CreditAuthorizationConsumer : IConsumer<CreditAuthorizationRequest>
{
private Func<string, Task> _outputDelegate2;
public CreditAuthorizationConsumer(Func<string, Task> outputDelegate)
{
_outputDelegate2 = outputDelegate;
}
public async Task Consume(ConsumeContext<CreditAuthorizationRequest> context)
{
await _outputDelegate2($"Received: {context.Message}: {context.Message.CardNumber}");
await context.RespondAsync<CreditAuthorizationResponse>(new CreditAuthorizationResponse(true));
await _outputDelegate2($"Sent CreditAuthorizationResponse for card request {context.Message.CardNumber}");
}
}
다음
private void InitializeBus()
{
_messageBus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri(hostUriTextBox.Text), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "mtSubscriber_creditAuthResponse_queue", endpoint =>
{
endpoint.Handler<CreditAuthorizationResponse>(async context =>
{
await WriteOutputAsync($"Received: {context.Message}: {context.Message.IsAuthorized}");
});
});
});
}
내가 처음이야 곳이다 : 나는 내 클라이언트 - 사이드 버스 (FSB)를 초기화하고있어 어디 여기
입니다 내 서비스 사이드 버스를 델링 :
private void InitializeBus()
{
_messageBus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri(hostUriTextBox.Text), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "mtSubscriber_creditAuthRequest_queue", endpoint =>
{
endpoint.Consumer(() => new CreditAuthorizationConsumer(WriteOutputAsync));
});
}
}
교환 바인딩을 확인하십시오. –