使用 Java SDK (0.4.1) 从 SB 队列检索消息时,即使相关队列为空,也会返回非空的 ReceiveQueueMessageResult
。对该结果调用 getValue()
会返回非 null BrokeredMessage
。我该如何判断我已经在空队列上调用了 receive ?显然,在分布式并发系统中查询大小不是一个选项。
我正在使用ReceiveAndDelete
模式,并且队列是新创建的,所以我知道它是空的。
根据文档,对 API 的底层调用应返回 StatusCode 204。我找不到任何方法在返回的结果或消息中访问该代码。
最佳答案
我们已记录此问题,现在正在修复。顺便说一句,Windows Azure SDK for Java 是开源的,如果您愿意向 MSFT 放弃版权,您甚至可以提交自己的修复程序。源码可参见https://github.com/WindowsAzure/azure-sdk-for-java
关于java - 使用 Java SDK 从空 Azure ServiceBus 队列接收时接收非空消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15577926/