我目前有一个循环,在该循环中,我按如下所示轮询Azure存储队列:
// Get the next messages
var messages = await Queue.GetMessagesAsync(_messageBatchSize, lockTimeout, null, null);
我期望这里的等待会阻塞一段可配置的时间,然后再返回,但就目前情况而言,它会立即返回,然后提示我们立即重新请求一条消息,因此最终产生了大量的消息队列不繁忙时的请求数量。
谁能告诉我Azure存储队列中是否有可用的阻塞等待方法?
答案 0 :(得分:1)
在下面,用于检索消息的Azure存储队列API调用只是一个简单的REST GET。尽管可以为调用本身指定超时,但没有阻塞API调用。您可以查看REST API详细信息here,在其中您只能看到两个基于时间的设置:
如果呼叫返回的消息为零,则您需要实施自己的退避策略类型。