没有从azure服务总线订阅获得所有代理消息

时间:2016-08-04 13:35:52

标签: azure azureservicebus servicebus azure-servicebus-queues brokeredmessage

我正在使用azure服务总线订阅和发送订单和获取订单的主题。我们有一个Windows应用程序,它使用来自azure服务总线订阅的web api来获取订单。

假设用户登录并获得5个订单。如果用户从Windows应用程序注销,我们将解锁来自Azure服务总线的消息。如果用户在5分钟或更短时间后再次登录,那么我们无法从天蓝色服务总线获得所有订单。它有时会像3或4一样。

任何人都可以帮我解决这个问题,为什么我没有再收到所有5个订单。我正在使用subscriptionclinet的ReceiveBatch方法来提取消息。

1 个答案:

答案 0 :(得分:0)

我怀疑你在这里遇到了送货计数问题。假设我正确理解了您所说的内容,Windows应用程序会以PeekLock模式提取消息。处理完邮件后,即可完成邮件。否则,退出应用程序后,您将放弃这些消息。如果您没有处理消息并且用户退出,则会在DeliveryCount增加时放弃该消息。一旦DeliveryCount超过实体的最大设置,该消息就会被破坏,并且不再被传递。

  1. 检查实体上的MaxDeliveryCount
  2. 检查实体的DLQ以验证这是否是行为
  3. 如果他们是DLQed,我建议调查centralising your DLQs以便更轻松地处理错误