#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() для получения количества сообщений в очереди.