Реализация экспоненциальной политики повторных попыток для ServiceBusTransientErrorDetectionStrategy

Я пытаюсь внедрить политику повторных попыток для временной ошибки служебной шины. Я хочу, чтобы моя система пробовала экспоненциально, например, 1 с, 2 с, 4 с, 8 с, 16 с, 32 с, 64 с, 128 с.

    private int minBackoffDelayInMilliseconds = 2000;
    private int maxBackoffDelayInMilliseconds = 10000;
    private int deltaBackoffInMilliseconds = 2000;

    var defaultPolicy = new RetryPolicy<ServiceBusTransientErrorDetectionStrategy>(new ExponentialBackoff(maxRetries, TimeSpan.FromMilliseconds(minBackoffDelayInMilliseconds), TimeSpan.FromMilliseconds(maxBackoffDelayInMilliseconds), TimeSpan.FromMilliseconds(deltaBackoffInMilliseconds))

Это выглядит правильно? и влияет ли эта политика на производительность системы?


person Sabby62    schedule 21.06.2016    source источник


Ответы (1)


Вот хорошая статья от команды Azure CAT, в которой показано несколько примеров.

https://azure.microsoft.com/en-us/documentation/articles/best-practices-retry-service-specific/#service-bus-retry-guidelines

Предлагают делать так:

namespaceManager.Settings.RetryPolicy = new RetryExponential(TimeSpan.FromSeconds(0.1),TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(5), 3);
person JTaub    schedule 21.06.2016