Как определить, что очередь служебной шины Azure пуста

#java #azure #azureservicebus #azure-servicebus-queues

Вопрос:

Я работаю над приложением, которое обрабатывает сообщения из нескольких очередей служебной шины Azure. Чтобы оптимизировать ресурсы, мне нужно расставить приоритеты в одной очереди и сначала обработать ее сообщения. Как только он опустеет, обработайте следующую очередь. Для этого я ищу метод, позволяющий определить, пуста ли конкретная очередь. Было бы действительно хорошо, если бы был какой-нибудь способ установить прослушиватель пустой очереди.

В настоящее время я реализовал свой код для обработки только одной очереди с помощью ServiceBusProcessorClient.

 this.processor = new ServiceBusClientBuilder()
          .connectionString(connectionString)
          .processor()
          .queueName(queueName)
          .processMessage(onMessage)
          .processError(onError)
          .disableAutoComplete()
          .prefetchCount(1) 
          .maxConcurrentCalls(1)
          .receiveMode(ServiceBusReceiveMode.PEEK_LOCK)
          .buildProcessorClient();
 

Комментарии:

1. Пожалуйста, ознакомьтесь с расписанием очередей . Используя это, вы можете получить количество сообщений в очереди.

Ответ №1:

Как упоминал Гаурав Мантри в комментарии, вы можете использовать getTotalMessageCount() для получения количества сообщений в очереди.