2014-01-07 45 views
1

我有一个天蓝色的存储队列,包含很多消息,这些消息具有很长的可见性超时(> 72hrs,setVisibilityTimeoutInSeconds)检出(getQueueMessages)。出队进程崩溃,数百万条消息留在队列中,我们不得不等待很长时间,直到它们过期并再次在队列中可见。重置消息可见性Azure存储队列

有没有一种方法可以重置队列中所有消息的可见性超时,也就是使所有不可见消息再次可见,而不必为每条消息设置弹出式收据/ ID?

+0

您使用的是Java API吗?我通过方法名称猜测。 –

+0

是的,我使用的Java API,我找不到任何方法,我希望有一个重置按钮,或者可能使用REST api的一些HTTP调用 –

回答

2

不幸的是没有。一旦消息出队,它们对其他呼叫者不可见。如果您有消息内容,则可以清除该队列,然后重新输入这些消息。

+0

只是为了完成,当队列项被抓住可见性超时,即使使用Azure存储浏览器或Cerebrata云存储工作室等客户端,也无法查看它们(除了抓取它的原始流程之外)......对吗? –

+0

当你锁定一条信息时,你将它隐藏在没有密钥的所有方。只有通过释放锁或让锁过期,另一个客户端才能看到该消息。 这就是为什么你应该用短租赁(少于5分钟)取出锁,并且如果你长时间处理更新它们。租赁72小时是问题。 –