Как заблокировать прием запросов в очередях хранилища Azure - PullRequest
1 голос
/ 08 июля 2019

В настоящее время у меня есть цикл, в котором я опрашиваю очередь хранения Azure следующим образом:

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

Я ожидал, что ожидание здесь будет блокироваться в течение настраиваемого промежутка времени перед возвратом, но в текущем состоянии оно немедленно возвращается, что затем побуждает нас немедленно запросить сообщение, и в результате мы получаем очень большое число. запросов, когда очередь не занята.

Может ли кто-нибудь сказать мне, есть ли метод ожидания блокировки, доступный в очереди хранения Azure?

1 Ответ

1 голос
/ 08 июля 2019

Ниже вызов API-интерфейса очереди хранилища Azure для получения сообщений - это просто REST GET.Не нужно выполнять блокирующий вызов API, хотя вы можете указать время ожидания для самого вызова.Вы можете посмотреть подробности API REST здесь , где вы можете увидеть только две настройки на основе времени:

  • Тайм-аут видимости (как долго вы будете работать с сообщением очередидо того, как он появится в очереди для других потребителей)
  • Тайм-аут вызова (до 30 секунд)

Вам потребуется реализовать свой собственный тип стратегии отката, если вызов вернетсяс нулевыми сообщениями.

...