1

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

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

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

4

1 回答 1

0

我怀疑您在这里遇到了交货计数问题。假设我正确理解了您在说什么,Windows 应用程序会以某种PeekLock模式提取消息。处理完消息后,您就完成了它。否则,在退出应用程序时,您会放弃消息。如果您没有完成消息处理,并且用户退出,则消息被丢弃而DeliveryCount增加。一旦DeliveryCount超过实体上设置的最大值,消息就会死信,将不再传递。

  1. 检查您MaxDeliveryCount的实体
  2. 检查您实体的 DLQ 以验证这是否是行为
  3. 如果它们是 DLQed,我建议考虑集中您的 DLQ以便于错误处理
于 2016-08-05T23:21:26.927 回答