В моем приложении загрузки Spring мне нужно дождаться, когда веб-сервер (по умолчанию Tomcat) будет полностью инициализирован и готов принять трафик, прежде чем отправлять сообщения другим приложениям, сообщающим им отправлять HTTP-запросы для меня (в частности, система мониторинга, которая поражает мой /health
).Spring Boot - Подождите, пока веб-сервер запустится
Я попытался поместить логику, отправляющую сообщения в другие приложения, в ApplicationListener<ContextRefreshedEvent>
, но все еще слишком рано. Другие приложения пытаются запросить меня и провалиться. Прямо сейчас я положил задержку в onApplicationEvent
, и это работает, но это взломано и ярко.
Я также попытался добавить ServletContextInitializer
, но уволен еще раньше.
Я предполагаю, что мне нужно будет использовать API Tomcat, но я хотел бы узнать, есть ли что-то в API загрузки для этого.
Вы видели: HTTP : //stackoverflow.com/a/4747639/283084? Кроме того, возможно, вы можете скрыть свое приложение за LB, и LB не будет принимать ваше приложение в свой пул, пока запрос '/ health' не вернет HTTP OK (200). – harpun