Spring Boot, только загрузка конфигурации среды - PullRequest
0 голосов
/ 08 декабря 2018

Я создал несколько рабочих классов для обработки заданий, которые они получают с сервера заданий.Код, который должен быть выполнен, зависит от некоторых переменных среды, которые настраиваются с помощью spring-config + application.properties.

В данный момент я запускаю SpringApplication.run (app.class) для инициализации весенней загрузки перед запуском рабочей станции.так что моя кодовая база может получить доступ к переменным среды через ApplicationContext.getBean ().

Проблема в том, что рабочие используют цикл while (true), пружинные перехватчики отключения никогда не запускаются.Таким образом, каждый раз, когда новое задание принимается и выполняется, новые экземпляры объектов загружаются в загрузчик классов Spring.Эти объекты не являются GCed, поскольку они имеют ссылку в загрузчике классов, и поэтому Metaspace постоянно растет, что приводит к исключению OOM.

Удаление загрузки Spring и жесткое кодирование переменных среды в коде исправляет эту проблему, ноэто, очевидно, не практическое решение.

Я не совсем уверен, как это исправить, и я открыт для предложений.В идеале я хотел бы загрузить spring-config, чтобы я мог получить доступ к bean-компонентам и переменным окружения, не сталкиваясь с загрузчиком классов или какими-либо другими издержками Spring.

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