Skip to content

Commit dfc6e9a

Browse files
committed
Configured exponential retry
1 parent 95d73dc commit dfc6e9a

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

API/SOFTURE.MessageBroker.Rabbit/DependencyInjection.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ public static IServiceCollection AddCommonConsumers<TSettings>(
4646
this IServiceCollection services,
4747
Assembly assembly,
4848
int retryCount = 0,
49-
int prefetchCount = 50)
49+
int prefetchCount = 50,
50+
bool exponentialRetry = false)
5051
where TSettings : IRabbitSettings
5152
{
5253
var consumerTypes = GetConsumers<IMessage>(assembly);
@@ -100,8 +101,22 @@ public static IServiceCollection AddCommonConsumers<TSettings>(
100101
c.ConfigureConsumer(ctx, type);
101102
c.PrefetchCount = prefetchCount;
102103

103-
if (retryCount != 0)
104-
c.UseMessageRetry(r => r.Immediate(retryCount));
104+
switch (exponentialRetry)
105+
{
106+
case false when retryCount != 0:
107+
c.UseMessageRetry(r => r.Immediate(retryCount));
108+
break;
109+
case true when retryCount != 0:
110+
c.UseMessageRetry(r =>
111+
{
112+
r.Exponential(
113+
retryLimit: retryCount,
114+
minInterval: TimeSpan.FromSeconds(1),
115+
maxInterval: TimeSpan.FromMinutes(10),
116+
intervalDelta: TimeSpan.FromSeconds(1));
117+
});
118+
break;
119+
}
105120
}
106121
});
107122
});

0 commit comments

Comments
 (0)