Повторите паттерны с помощью Polly httpClient ConfigureAwait (true) - PullRequest
0 голосов
/ 02 мая 2020
 var appendFileResponse = await Policy
            .HandleResult<HttpResponseMessage>(message => !message.IsSuccessStatusCode)
            .WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)))
            .ExecuteAsync(async () => await httpClient.SendAsync(request).ConfigureAwait(true))
            .ConfigureAwait(true);

 if (appendFileResponse.StatusCode != System.Net.HttpStatusCode.Accepted)
 {
            throw new ApplicationException($"Failed to append file");
 }

Я хочу убедиться, что appendFileResponse завершен, прежде чем выполнять проверку If и некоторые другие операции.

Должен ли я добавить ConfigureAwait (true) в вызов httpClient.SendAsyn c и / или. ConfigureAwait (true) в Политике ожидания?

1 Ответ

0 голосов
/ 02 мая 2020

ConfigureAwait не влияет на порядок вещей. Тот факт, что вы используете await, означает, что код будет "асинхронно ждать" в этой точке.

ConfigureAwait просто определяет в каком контексте ваш код возобновляет : захваченный контекст (по умолчанию) или контекст пула потоков (если вы передаете false).

if запускается после всех Polly повторяет попытки независимо от того, используете ли вы ConfigureAwait.

...