如何阻止对 Azure 存储队列的接收请求
How do I block receive requests on Azure Storage Queues
我目前有一个循环,我在其中轮询 Azure 存储队列如下:
// Get the next messages
var messages = await Queue.GetMessagesAsync(_messageBatchSize, lockTimeout, null, null);
我原以为这里的 await 会在返回之前阻塞一段可配置的时间,但实际上它会立即 returns,然后提示我们立即重新请求消息,所以我们结束了当队列不忙时发出大量请求。
谁能告诉我 Azure 存储队列上是否有可用的阻塞等待方法?
下面,Azure 存储队列 API 检索消息的调用只是一个简单的 REST GET。尽管您可以为调用本身指定超时,但不会进行阻塞 API 调用。您可以查看 REST API 详细信息 here,其中您只能看到两个 time-based 设置:
- 可见性超时(在队列消息为其他消费者重新出现在队列中之前,您需要处理队列消息的时间)
- 调用超时(最长 30 秒)
如果调用 return 消息为零,您需要实施自己的退避策略。
我目前有一个循环,我在其中轮询 Azure 存储队列如下:
// Get the next messages
var messages = await Queue.GetMessagesAsync(_messageBatchSize, lockTimeout, null, null);
我原以为这里的 await 会在返回之前阻塞一段可配置的时间,但实际上它会立即 returns,然后提示我们立即重新请求消息,所以我们结束了当队列不忙时发出大量请求。
谁能告诉我 Azure 存储队列上是否有可用的阻塞等待方法?
下面,Azure 存储队列 API 检索消息的调用只是一个简单的 REST GET。尽管您可以为调用本身指定超时,但不会进行阻塞 API 调用。您可以查看 REST API 详细信息 here,其中您只能看到两个 time-based 设置:
- 可见性超时(在队列消息为其他消费者重新出现在队列中之前,您需要处理队列消息的时间)
- 调用超时(最长 30 秒)
如果调用 return 消息为零,您需要实施自己的退避策略。