我在Azure Queue中创建了一个队列,并在其中排队了两个项目。使用nodejs sdk,我创建一个每5秒执行一次的计时器并调用:
azure.createQueueService("precondevqueues", "<key>").getMessages(queueName, {numOfMessages : 1, visibilityTimeout: 1 }, callback)
我希望队列中两个人的相同消息在每5秒后出现,但似乎并非如此。此调用的输出在两个消息之间交替。
这不应该是这种情况,因为visibilityTimeout设置为1,因此,在1秒之后,在进行下一次getMessage调用之前,第一次调用中出列的消息应该再次可见。
答案 0 :(得分:0)
如上所述here,无法保证FIFO排序。所以情况可能就是这样,大多数情况下消息是按FIFO顺序获取的,但这并不能保证,Azure可以按照最适合其实现的顺序给你消息。
通常会将消息添加到队列末尾并进行检索 从队列的前面,虽然先进先出(FIFO) 行为无法保证。
答案 1 :(得分:0)