Передовая практика DocumentDB TransientFaultHandling

Я писал очень многословную логику повторов для дросселированных клиентских вызовов DocumentDB.

Пример ниже является типичным примером этого с 10 повторными попытками.

Мой вопрос в два раза: Это лучшая практика, и есть ли менее подробный способ справиться с этим? Я вижу, что естьMicrosoft.Azure.Documents.Client.TransientFaultHandling пакет nuget, который должен достичь тех же результатов с меньшим количеством кода, но я не могу найти никаких примеров в StackOverflow или Google, и, похоже, нет какой-либо четкой документации, доступной от Microsoft.

int maxRetryAttempts = 10;

while (maxRetryAttempts > 0)
{
    try
    {
        // Attempt to call DocumentDB Method
        // ---[DocumentDB Method Here]---
    }
    catch (DocumentClientException de)
    {
        if (de.StatusCode.HasValue)
        {
            var statusCode = (int)de.StatusCode;

            if (statusCode == 429 || statusCode == 503)
            {
                //Sleep for retry amount
                Thread.Sleep(de.RetryAfter);

                //Decrement max retry attempts 
                maxRetryAttempts--;
            }

        }
    }
    catch (AggregateException ae)
    {                    
        foreach (Exception ex in ae.InnerExceptions)
        {
            if (ex is DocumentClientException)
            {
                var documentClientException = ex as DocumentClientException;
                var statusCode = (int)documentClientException.StatusCode;
                if (statusCode == 429 || statusCode == 503)
                {
                    //Sleep for retry amount
                    Thread.Sleep(documentClientException.RetryAfter);

                    //Decrement max retry attempts 
                    maxRetryAttempts--;
                }
                else
                {
                    throw;
                }
            }
        }
    }
}

if (maxRetryAttempts < 0)
{
    //Max retry attempts reached
}

Ответы на вопрос(1)

Ваш ответ на вопрос