我正在尝试实施重试策略,但它一直被忽略。SubscriptionClient 中的属性是否覆盖了我在创建客户端时提供的属性?
这是我尝试过的代码:
_retryPolicy = new Microsoft.Azure.ServiceBus.RetryExponential(
TimeSpan.FromMinutes(2), // MinBackOff
TimeSpan.FromMinutes(5), // MaxBackOff
3); // Max Retries
_subscriptionClient = new SubscriptionClient(
serviceBusPersisterConnection.ServiceBusConnectionStringBuilder,
subscriptionClientName, retryPolicy: _retryPolicy);
所以这应该使它只重试 3 次,间隔最少 2 分钟。来自日志的结果:
28 May 2019 16:34:49.928 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:49.285 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:48.718 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:48.075 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:47.499 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:46.965 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:46.511 MessageId: 1d327c9033de4fc69892766084264
28 May 2019 16:34:45.957 MessageId: 1d327c9033de4fc69892766084264
如您所见,它重试了 8 次而不是 3 次,重试之间的时间间隔(这是我的主要问题)间隔为半秒。
为了确保这不是我的重试策略,我尝试了这个:
_subscriptionClient = new SubscriptionClient(
serviceBusPersisterConnection.ServiceBusConnectionStringBuilder,
subscriptionClientName, retryPolicy: RetryPolicy.NoRetry);
结果完全一样,所以我确信它被忽略了。任何帮助将非常感激。
保持良好的工作。