Spring Boot BufferedApplicationStartup сливается после первого запроса

Я использую замечательную новую функцию записи ApplicationStartup Spring 5.3 / Spring Boot 2.4 с BufferedApplicationStartup (предоставляется только SB 2.4).

Однако,

  • при самом первом доступе к конечной точке /startup я, кажется, получаю все события запуска, но
  • при последующих обращениях к конечной точке я получаю только 3 (ровно 3) новых события.

Это где-то задокументировано? Это настраивается? Было бы здорово, если бы данные не терялись после первого звонка. Или это ошибка?

Привет. Это интересная тема. Не могли бы вы предоставить нам свой код, чтобы провести локальное тестирование? БР

Roar S. 22.12.2020 19:32

@RoarS. Код выглядит примерно так: ``` @SpringBootApplication public class MyApp { public static void main(String[] args) { SpringApplication app = new SpringApplication(MyApp .class); app.setApplicationStartup (новый BufferingApplicationStartup (2048)); app.run(аргументы); } } ```

Gerd Aschemann 23.12.2020 08:58
2
2
95
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это ожидаемое поведение здесь, поскольку мы опустошаем буфер перед отправкой событий запуска по сети. Использование метода HTTP POST также показывает, что этот метод не свободен от побочных эффектов.

Этот аспект можно было бы лучше задокументировать, поэтому не стесняйтесь создавать проблему.

Цель здесь состоит в том, чтобы как можно скорее освободить память от этих буферизованных событий, поскольку их может быть много. Реализация Java Flight Recorder также интересна, если вы хотите записывать события запуска и получать дополнительную информацию, например сборщик мусора и загрузку классов.

Как только приложение станет доступным, большинство событий запуска должно быть там. Если в вашем приложении есть ленивые компоненты, вы не получите эти данные, пока они не будут вызваны, что может произойти в любое время во время выполнения приложения.

Спасибо, что прояснили это — я поднял github.com/spring-projects/spring-boot/issues/24605, чтобы улучшить документы.

Gerd Aschemann 23.12.2020 14:11

Другие вопросы по теме