RetryPolicy на самом деле является делегатом, который при оценке возвращает делегат Microsoft.WindowsAzure.StorageClient.ShouldRetry. Он обеспечивает легкий механизм для создания экземпляров повторов с полным состоянием контролируемым образом.Когда каждая операция начинается, она оценивает RetryPolicy, что заставляет CLR создавать объект состояния за кулисами, содержащий параметры, используемые для настройки политики.
Пример, если простая политика линейных повторов
public static RetryPolicy LinearRetry(int retryCount, TimeSpan intervalBetweenRetries)
{
return () =>
{
return (int currentRetryCount, Exception lastException, out TimeSpan retryInterval) =>
{
// Do custom work here
// Set backoff
retryInterval = intervalBetweenRetries;
// Decide if we should retry, return bool
return currentRetryCount < retryCount;
};
};
}
*Код 1005 * внутри
return () => {
}
соответствует подписи для делегата Microsoft.WindowsAzure.StorageClient.ShouldRetry и будет содержать особенности вашей реализации.
После того как вы создали политику повторных попыток каквыше вы можете настроить свой клиент, чтобы использовать его через
Cloud[Table/Blob/Queue].Client.RetryPolicy = LinearRetry(<retryCount, intervalBetweenRetries>).
Это сработало для меня.Надеюсь, это поможет.