Spring AMQP RabbitMQ не потребляет все сообщения, рабочие заканчивают преждевременно - PullRequest
0 голосов
/ 14 мая 2019

Я изо всех сил пытаюсь найти правильную настройку для задержки тайм-аута для работников в RabbitMQ.

По умолчанию prefetchCount, поскольку для версии 2.0 установлено значение 250, и именно это количество сообщений принимается и обрабатывается.Я бы хотел, чтобы работники были заняты, пока они не очистят всю очередь (скажем, 10 тыс. Сообщений).

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

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

o.s.a.r.l.SimpleMessageListenerContainer : Successfully waited for workers to finish.

Я хотел бы, чтобы они закончили работу, когда очередь пуста.Есть идеи?

1 Ответ

1 голос
/ 14 мая 2019

logger.info("Successfully waited for workers to finish."); происходит только в одном месте - doShutdown(). И этот вызывается из shutdown(), который вызывается из destroy() или stop().

Мне почему-то кажется, что вы по какой-то причине выходите из своего приложения. Вы просто не блокируете main() работать постоянно.

Пожалуйста, поделитесь простым проектом, с которым мы можем играть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...