У меня есть вопросы по политике возврата:
1 Можно ли его использовать как для Publiser (сообщения в очереди), так и для подписчика (сообщения очереди)?
2 Является ли Rebus Политика отсрочки такой же, как Polly's Retry ? Но в приведенном ниже описании упоминается простой, который меня немного смущает.
//
// Summary:
// Configures the timespans to wait when backing off polling the transport during
// idle times. backoffTimes must be a sequence of timespans, which indicates the
// time to wait for each second elapsed being idle. When the idle time exceeds the
// number of timespans, the last timespan will be used.
public static void SetBackoffTimes(this OptionsConfigurer configurer, params TimeSpan[] backoffTimes);
Configure.With(...)
.(...)
.Options(o => {
o.SetBackoffTimes(
TimeSpan.FromMilliseconds(100),
TimeSpan.FromMilliseconds(200),
TimeSpan.FromSeconds(1)
);
})
.Start();
3 Rebus поддерживает расширение Polly? Например, экспоненциальный откат плюс некоторое дрожание, как в нижней части
Random jitterer = new Random();
Policy
.Handle<HttpResponseException>() // etc
.WaitAndRetry(5, // exponential back-off plus some jitter
retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))
+ TimeSpan.FromMilliseconds(jitterer.Next(0, 100))
);
https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/implement-resilient-applications/implement-http-call-retries-exponential-backoff-polly
4 Я не могу найти ISyncBackoffStrategy
на последнем орехе Ребуса. Это устарело?
Configure.With(...)
.(...)
.Options(o => {
o.Register<ISyncBackoffStrategy>(c => {
var strategy = new MyOwnBackoffStrategy();
return strategy;
});
})
.Start();
https://github.com/rebus-org/Rebus/wiki/Back-off-strategy