У меня есть старый код, реализующий повторную попытку к теме Azure Service Bus с использованием пакета EnterpriseLibrary.TransientFaultHandling :
var bus = TopicClient.CreateFromConnectionString(con, topic);
await new RetryPolicy<ServiceBusTransientErrorDetectionStrategy>(
new FixedInterval(3, TimeSpan.FromMilliseconds(200)))
.ExecuteAsync(() =>
await bus.SendAsync(msg)
...
Код написан несколько лет назад и, вероятно, взят из поста в блоге или какой-либо документации Microsoft. При проверке сегодняшнего TopicClient
он содержит свойство с именем RetryPolicy
, которое по умолчанию установлено на экземпляр RetryExponential
с некоторыми значениями по умолчанию для числа повторных попыток, максимального времени ожидания и т. Д.
На мой взгляд, стратегия повторения по умолчанию на TopicClient
выглядит хорошо. Есть ли какие-либо преимущества в обертывании этого при повторных попытках с использованием TransientFaultHandling? Если мне нужно больше попыток или другая стратегия повторения, я могу просто настроить другую стратегию повторения непосредственно на клиенте темы, вместо того, чтобы объединить две стратегии повторения вместе.