static DelayedConfig GetDelayedRetryConfig(ReadOnlySettings settings, bool transactionsOn)
{
if (!transactionsOn)
{
Logger.Warn("Delayed Retries will be disabled. Delayed retries are not supported when running with TransportTransactionMode.None. Failed messages will be moved to the error queue instead.");
//Transactions must be enabled since Delayed Retries requires the transport to be able to rollback
return new DelayedConfig(0, TimeSpan.Zero);
}
var numberOfRetries = settings.Get<int>(NumberOfDelayedRetries);
var timeIncrease = settings.Get<TimeSpan>(DelayedRetriesTimeIncrease);
var retriesConfig = settings.GetConfigSection<SecondLevelRetriesConfig>();
if (retriesConfig != null)
{
numberOfRetries = retriesConfig.Enabled ? retriesConfig.NumberOfRetries : 0;
timeIncrease = retriesConfig.TimeIncrease;
}
return new DelayedConfig(numberOfRetries, timeIncrease);
}