CountDownLatch countdownLatch = new CountDownLatch(1);
Disposable subscription = client.receiveMessages()
.subscribe(
message -> System.out.println(message.getBody()),
System.err::println
);
countdownLatch.await(1, MINUTES);
У библиотеки для работы с Azure очередями есть два клиента - блокирующий и неблокирующий.
Я использую Async Client у которого есть метод receiveMessages(), который возвращает infinite Flux, на Flux я создаю subscribe который просто печатает в консоль текст сообщения. Суть в том что версия на неблокирующем клиенте работает медленнее чем на блокирующем - обрабатывает меньше сообщений за минуту.
Почему так происходит, что я упускаю?
Печать в консоль занимает время, это может влиять на тест. Вообще как нагрузочный тест очень спорное решение
Суть в том что конечная цель - это эндпоинт который забирает сообщения из очереди и печатает их в консоль
Ну попробуйте на терминале с аппаратным ускорением или писать в dev/null. Так можно будет устранить этот боттлнек. Если результат не изменится, можно попрофилировать
А countdownlatch тебе зачем?
Печатай в /dev/null тогда будет более реалистичный тест
так тут нет реактивности же CountDownLatch блокирует поток
Хорошо, но если его убрать тогда же он сразу прервется
так и должно быть по идее
Обсуждают сегодня