MassTransit RequestClient обработка тайм-аута - PullRequest
0 голосов
/ 07 апреля 2020

Я пробовал несколько сценариев для обработки тайм-аутов в запросе, но они, похоже, не работают.

Я прошел интервал TimeSpan при создании клиента запроса и / или создании запроса. Запрос не получает ответ в течение настроенного промежутка времени, но задача продолжает выполняться и кажется зависшей, и исключение RequestTimeoutException не генерируется.

Какое точное решение для обработки тайм-аута клиента.

РЕДАКТИРОВАТЬ

Вариант использования, приводящий к тайм-ауту, - это когда весь потребительский сервис не работает поэтому первоначальный запрос вообще не расходуется. Следующий пример кода запроса. Как уже упоминалось, я пытался передать RequestTimeout также при создании клиента. Кроме этого, он отлично работает, когда все части работают.

var client = _busControl.CreateRequestClient<CheckRequest>(new Uri($"{rabbitHostUri}/CheckQueue"));
var response = await client.GetResponse<CheckResponse>(checkRequest, timeout: RequestTimeout.After(s: 60)).ConfigureAwait(false);
var checkResponse = response.Message;
...