политика повторных попыток в течение заданного периода времени

У меня есть следующий код:

var expirationPeriodMilliseconds = 1000;
return Policy
   .HandleResult<EnquiryResult>(message => message.Status == EnquiryStatus.SystemError)
   .RetryForeverAsync() // instead run until expirationPeriodMilliseconds
   .ExecuteAsync(async () =>
                await ratingProvider.Enquire(request, cancellationToken));

Есть ли какое-либо решение, позволяющее Polly использовать опцию повторной попытки в течение определенного периода времени? Любые идеи? Спасибо


person Andrei    schedule 01.08.2018    source источник
comment
Вы проверили другие методы .RetryXXX или WaitAndRetry? Повторить сразу или через некоторое время? Если код повторяется сразу же после сбоя сервера, наиболее вероятным результатом будет та же ошибка.   -  person Panagiotis Kanavos    schedule 01.08.2018
comment
Проще говоря, если возникает EnquiryStatus.SystemError, я хочу постоянно повторять попытки в течение 1000 миллисекунд.   -  person Andrei    schedule 01.08.2018
comment
Вы можете использовать несколько политик, например Retry и Timeout. Об этом спрашивали в этой проблеме от 2016 года. Вы можете обернуть RetryForeverAsync внутри Timeout с помощью myTimeout.Wrap(myRetry)   -  person Panagiotis Kanavos    schedule 01.08.2018
comment
Еще в этом вопросе: stackoverflow.com/a/43205503   -  person mountain traveller    schedule 01.08.2018