I'm trying to use UseRetry with interval setting using MassTransit and Azure Service Bus as transport. Consumer code:
public async Task Consume(ConsumeContext<ISimpleRequest> context)
{
_log.InfoFormat("Strated working on {0}", context.Message.CustomerId);
throw new InvalidOperationException("some error");
}
Request service:
var _busControl = Bus.Factory.CreateUsingAzureServiceBus(cfg =>
{
var host = cfg.Host("...", h =>
{
});
cfg.MaxConcurrentCalls = 10;
cfg.ReceiveEndpoint(host, "requestconsumerbag",
e => { e.UseRetry(Retry.Interval(2,TimeSpan.FromMinutes(5))); e.Consumer<RequestConsumer>(); });
cfg.UseServiceBusMessageScheduler();
});
_busControl.Start();
After message sending I expect to get one message immediately, one more after 5 minutes, and one more after 10 minutes. But I got one message immediately, two messages after 5 minutes, three messages after 10 minutes, and three messages every 5 minutes further. If this is bug how I can write code to force it work like I say before?