有没有办法在 .NET Core ServiceBus 客户端中为 RetryExponential 策略设置 DeltaBackoff?
Is there a way to set DeltaBackoff for RetryExponential policy in .NET Core ServiceBus client?
似乎链接到 public 的 .NET Standard Azure ServiceBus 客户端 library doesn't have exposed possibility to set DeltaBackoff
parameter. It was possible before, based on documentation it should be still possible. I see there is an internal constructor 和 DeltaBackoff
的值是从 Constants.DefaultRetryDeltaBackoff
传递的(3 秒) .
是否有正当理由不再公开它?另外,有没有办法在不设置 DeltaBackoff
的情况下使用 SubscriptionClient
实现指数重试,延迟 2/4/8 分钟?
除了使用反射通过其内部构造函数实例化 RetryExponential
之外找不到其他方法:
var internalCtor = typeof(RetryExponential)
.GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
.Single();
var instance = (RetryExponential)internalCtor.Invoke(
new object[] { TimeSpan.FromMinutes(2), TimeSpan.FromMinutes(8), TimeSpan.FromMinutes(2), 3 }
);
Console.WriteLine(instance.DeltaBackoff); // 00:02:00
这里是 repository 上的问题,如果有人想跟踪它的话。
似乎链接到 public 的 .NET Standard Azure ServiceBus 客户端 library doesn't have exposed possibility to set DeltaBackoff
parameter. It was possible before, based on documentation it should be still possible. I see there is an internal constructor 和 DeltaBackoff
的值是从 Constants.DefaultRetryDeltaBackoff
传递的(3 秒) .
是否有正当理由不再公开它?另外,有没有办法在不设置 DeltaBackoff
的情况下使用 SubscriptionClient
实现指数重试,延迟 2/4/8 分钟?
除了使用反射通过其内部构造函数实例化 RetryExponential
之外找不到其他方法:
var internalCtor = typeof(RetryExponential)
.GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
.Single();
var instance = (RetryExponential)internalCtor.Invoke(
new object[] { TimeSpan.FromMinutes(2), TimeSpan.FromMinutes(8), TimeSpan.FromMinutes(2), 3 }
);
Console.WriteLine(instance.DeltaBackoff); // 00:02:00
这里是 repository 上的问题,如果有人想跟踪它的话。