【问题标题】:Service bus QueueClient returns null brokered message even queue has thousands of messages即使队列有数千条消息,服务总线 QueueClient 也会返回空代理消息
【发布时间】:2013-05-09 10:17:50
【问题描述】:

我正在使用服务总线队列将项目从生产者传递给消费者。生产者能够成功地将项目发送到队列并且消费者正确接收,但是它显示出奇怪的行为,即使队列有数千条消息,receive 方法也会返回null(没有错误)代理消息。我的队列有什么问题?

这里要提一提的是,在测试中我调用了队列上的 Close() 方法。但它只在测试时完成了一次。但是现在每次我运行接收方法时都会返回 null 代理消息。

【问题讨论】:

  • 您是否尝试从队列中获取消息并且在Close 之前没有调用CompleteAbandon
  • 您如何检测到队列中有数千条消息?
  • 通过队列描述,当然还有门户

标签: azure message-queue azureservicebus


【解决方案1】:

messageCount 可以包括来自子队列的消息,例如死信和预定消息。如果您的所有消息都已过期,那么您将不得不为死信子队列创建一个接收器来获取它们。

【讨论】:

  • 是的,确实是问题所在。所有队列项目都被延迟。我试图通过使用序列号来恢复它们(我必须点击从 0 到 10000 的每个数字),但仍有一些项目未恢复。如果序列号丢失,有什么办法可以恢复这些延期的项目?
  • 很遗憾,如果您没有序列号,此时无法恢复延迟消息。蛮力接收与您看到的数字一样的当前序列号将是替代方案。
猜你喜欢
  • 2017-11-01
  • 2010-11-02
  • 1970-01-01
  • 2019-12-12
  • 2016-02-06
  • 2019-07-23
  • 1970-01-01
  • 2021-11-14
相关资源
最近更新 更多