Apache NMS Получение количества ожидающих сообщений
Я пытаюсь получить текущее количество сообщений в очереди activeMQ, используя C#.
Я нашел эту ссылку (которая довольно старая) ActiveMQ с C# и Apache NMS - подсчет сообщений в очереди, но перечисление очереди кажется большой работой для этой простой задачи.
Это единственный способ узнать количество сообщений в очереди? Если я использую этот метод, блокируется ли очередь во время перечисления (я не хочу блокировать других читателей)?
Спасибо ник
1 ответ
Вы можете либо выполнить глупую процедуру перечисления, описанную в этом другом ответе, которая не даст правильного ответа, либо использовать плагин статистического брокера и запросить эти данные у брокера.
С помощью плагина статистики вы можете отправить сообщение в контрольную очередь и прослушать ответ по указанному вами адресу replyTo для получателя, а также получить полную статистику о месте назначения, поскольку вы должны проанализировать данные, но не должны это сложно.
Метод перечисления не будет блокировать очередь, но он не будет работать так, как вы хотите, потому что есть предел глубины, в которой брокер будет входить в глубокую очередь перед остановкой, когда он подает QueueBrowser, поэтому вы не можете уверен, что вы получили правильный счет.