如何在Azure存储队列上阻止接收请求

时间:2019-07-08 14:00:15

标签: azure azure-storage-queues

我目前有一个循环,在该循环中,我按如下所示轮询Azure存储队列:

// Get the next messages
            var messages = await Queue.GetMessagesAsync(_messageBatchSize, lockTimeout, null, null);

我期望这里的等待会阻塞一段可配置的时间,然后再返回,但就目前情况而言,它会立即返回,然后提示我们立即重新请求一条消息,因此最终产生了大量的消息队列不繁忙时的请求数量。

谁能告诉我Azure存储队列中是否有可用的阻塞等待方法?

1 个答案:

答案 0 :(得分:1)

在下面,用于检索消息的Azure存储队列API调用只是一个简单的REST GET。尽管可以为调用本身指定超时,但没有阻塞API调用。您可以查看REST API详细信息here,在其中您只能看到两个基于时间的设置:

  • 可见性超时(在队列消息为其他消费者重新出现之前,您需要使用队列消息多长时间)
  • 通话超时(最多30秒)

如果呼叫返回的消息为零,则您需要实施自己的退避策略类型。