I'm using Rebus to send a message to an Azure Service Bus queue. For each message, my consumer's handler method seems to get called multiple times. Received.
is written to 9 separate log files.
Producer:
await _bus.Advanced.Routing.Send("some-queue", new SomeMessage());
Consumer:
public class SomeMessageHandler : IHandleMessages<SomeMessage>
{
public async Task Handle(SomeMessage message)
{
_logger.Information("Received.");
await SomeApiCall();
}
}
Consumer configuration:
builder.RegisterRebus((configurer, context) => configurer
.Logging(l => l.Serilog())
.Transport(t => t.UseAzureServiceBus("Endpoint=<redcated>;SharedAccessKeyName=<redacted>;SharedAccessKey=<redacted>", "some-queue")));
The method was throwing an unhandled exception. Rebus was trying to re-process it since it was erroring out.
Adding exception handling allowed the method to finish. Now the handler is only called one time as expected.