Azure队列 - 将超时消息返回到队列的头部

时间:2015-05-14 17:59:07

标签: azure azure-storage azure-queues

当从天蓝色队列中检索消息但未从中删除消息时,消息可见性超时到期并且消息被(重新)添加到队列的末尾

有没有办法将此类消息返回到队列头

1 个答案:

答案 0 :(得分:2)

当Azure Queue消息重新出现时,它们不一定会被发送到队列的末尾。它们只是重新出现,在那一点上,没有真正的秩序保证。它甚至没有从目前的位置转移;它再次可见。 Azure存储队列未设置为保证订单。所以不,当它在隐身超时到期后重新出现时,没有办法强制消息显示在队列的头部。

另外,请查看Jai Haridas关于排队消息排序的this forum answer。具体做法是:

  

今天队列中的消息按其可见时间排序。因此,消息的排序纯粹取决于它们何时可见。但是,对于应用程序而言,重要的是不要假设FIFO订单或任何特定订单,因为它可能在将来发生变化。您只能依赖于1)消息将根据其可见性超时符合条件; 2)消息处理应该是幂等的并使用新的UpdateMessage来保存状态

UpdateMessage()允许您修改队列消息(例如添加面包屑),因此下次开始处理时,您可以选择超过" start "请注意,您还可以调整超时值,同时它仍然在您拥有且不可见的情况下,以便您继续处理该消息。