使用Java SDK(0.4.1)从SB队列检索消息时,即使有问题的队列为空,也会返回非空ReceiveQueueMessageResult
。在该结果上调用getValue()
将返回非空BrokeredMessage
。我该如何判断我是否在空队列中调用了接收?显然,在分布式并发系统中查询大小不是一种选择。
我正在使用ReceiveAndDelete
模式并且新创建了队列,所以我知道它是空的。
根据文档,对API的底层调用应该返回一个204的StatusCode。我找不到任何方法来在返回的Result或Message中访问该代码。
答案 0 :(得分:1)
我们已经记录了这个问题,我们正在努力解决这个问题。顺便说一下,Windows Azure SDK for Java是开源的,如果您愿意放弃MSFT的版权,您甚至可以提交自己的修复程序。源代码可以找到https://github.com/WindowsAzure/azure-sdk-for-java