2

我正在尝试为服务总线瞬态错误实施重试策略。我希望我的系统像 1s、2s、4s、8s、16s、32s、64s、128s 一样以指数方式尝试。

    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))

这看起来对吗?该政策是否会影响系统性能?

4

1 回答 1

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);
于 2016-06-21T20:58:34.760 回答