0

我有一个队列接收器,它从队列中读取消息并处理消息(进行一些处理并将一些数据插入到 azure 表或检索数据)。

我观察到的是,我的处理方法 ( SendResponseAsync()) 抛出的任何异常都会导致重试,即将消息重新传递到默认值 10 次。

是否可以自定义此行为,即我只重试某些异常而忽略其他异常。就像如果有一些网络问题,那么重试是有意义的,但如果是BadArgumentException(poisson message),那么我可能不想重试。

由于ServiceBus客户端库负责重试,我们可以自定义此行为吗?

这是接收端的代码

public MessagingServer(QueueConfiguration config)
{
      this.requestQueueClient = QueueClient.CreateFromConnectionString(config.ConnectionString, config.QueueName);
      this.requestQueueClient.OnMessageAsync(this.DispatchReplyAsync);
}

private async Task DispatchReplyAsync(BrokeredMessage message)
{
     await this.SendResponseAsync(message);
}
4

0 回答 0