Я использую клиент запроса, чтобы отправить синхронный запрос своему потребителю, и в моем потребителе я выдаю исключение.
Мой код выглядит следующим образом
var client = Bus.CreateRequestClient<TRequest, TResponse>(uri, Timeout);
try
{
var response = await client.Request(request);
}
Catch(Exception e)
{
//log
}
проблема заключается в том, что если я повторяю запрос в быстрой последовательности, иногда я улавливаю реальное исключение, которое выдается потребителю внутри RequestFaultException, иногда я улавливаю исключение MassTransit.RequestCanceledException. Я уверен, что это не вызвано тайм-аутом, поскольку он установлен на длительный период времени (30 с) Я делаю что-то не так?
Трассировка стека:
MassTransit.RequestCanceledException: запрос был отменен, RequestId: 00240000-ac12-0242-0947-08d7b68e88f0 ---> Система. OperationCanceledException: операция была отменена. в MassTransit.Internals.Extensions.TaskExtensions.WithCancellation (Задача, CancellationToken cancellationToken) в MassTransit.RabbitMqTransport.Transport.RabbitMqSendTransport.SendPipe 1.Send(ModelContext modelContext)
at MassTransit.RabbitMqTransport.Transport.RabbitMqSendTransport.SendPipe
1.Send (модельКонтекстПоинтСтекстПойнтПункт_ТекстПунктПунктПунктПункт) cancellationToken) в GreenPipes.Agents.PipeContextSupervisor 1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe
1 канал, CancellationToken cancellationToken) в GreenPipes.Agents.PipeContextSupervisor 1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe
1 канал, CancellationToken cancellationToken) в MassTransit.Clients.SendRequest отмены запроса) Clients.ClientRequestHandle 1.SendRequest()
--- End of inner exception stack trace ---
at MassTransit.Clients.ClientRequestHandle
1.SendRequest () в MassTransit.Clients.ResponseHandlerConnectHandle 1.GetTask()
at MassTransit.MessageRequestClient
2.Request (запрос TRequest, CancellationToken cancellationToken)