为什么我的 Rebus 处理程序会针对一条 Azure 服务总线消息被多次调用?
Why is my Rebus handler being called multiple times for a single Azure Service Bus message?
我正在使用 Rebus 将消息发送到 Azure 服务总线队列。对于每条消息,我的消费者的处理程序方法似乎都被调用了多次。 Received.
被写入 9 个单独的日志文件。
制作人:
await _bus.Advanced.Routing.Send("some-queue", new SomeMessage());
消费者:
public class SomeMessageHandler : IHandleMessages<SomeMessage>
{
public async Task Handle(SomeMessage message)
{
_logger.Information("Received.");
await SomeApiCall();
}
}
消费者配置:
builder.RegisterRebus((configurer, context) => configurer
.Logging(l => l.Serilog())
.Transport(t => t.UseAzureServiceBus("Endpoint=<redcated>;SharedAccessKeyName=<redacted>;SharedAccessKey=<redacted>", "some-queue")));
该方法引发了未处理的异常。 Rebus 正在尝试 re-process 它,因为它出错了。
添加异常处理允许方法完成。现在处理程序只按预期调用一次。
我正在使用 Rebus 将消息发送到 Azure 服务总线队列。对于每条消息,我的消费者的处理程序方法似乎都被调用了多次。 Received.
被写入 9 个单独的日志文件。
制作人:
await _bus.Advanced.Routing.Send("some-queue", new SomeMessage());
消费者:
public class SomeMessageHandler : IHandleMessages<SomeMessage>
{
public async Task Handle(SomeMessage message)
{
_logger.Information("Received.");
await SomeApiCall();
}
}
消费者配置:
builder.RegisterRebus((configurer, context) => configurer
.Logging(l => l.Serilog())
.Transport(t => t.UseAzureServiceBus("Endpoint=<redcated>;SharedAccessKeyName=<redacted>;SharedAccessKey=<redacted>", "some-queue")));
该方法引发了未处理的异常。 Rebus 正在尝试 re-process 它,因为它出错了。
添加异常处理允许方法完成。现在处理程序只按预期调用一次。