1. Обзор
В этом кратком руководстве мы увидим, как мы можем настроить приложения Spring Boot для более изящной обработки завершений работы.
2. Мягкое завершение работы
Начиная с Spring Boot 2.3 , Spring Boot теперь поддерживает функцию корректного завершения работы для всех четырех встроенных веб-серверов (Tomcat, Jetty, Undertow и Netty) как на сервлетных, так и на реактивных платформах.
Чтобы включить плавное завершение работы, все, что нам нужно сделать, это установить свойство server.shutdown
в изящное
в нашем файле application.properties :
server.shutdown=graceful
Затем Tomcat, Netty и Jetty перестанут принимать новые запросы на сетевом уровне. Undertow, с другой стороны, продолжит принимать новые запросы, но немедленно отправит клиентам ответ 503 Service Unreachable.
По умолчанию значение этого свойства равно немедленному,
что означает немедленное завершение работы сервера.
Некоторые запросы могут быть приняты непосредственно перед началом фазы корректного завершения работы. В этом случае сервер будет ждать, пока эти активные запросы закончат свою работу в течение определенного периода времени . Мы можем настроить этот льготный период, используя свойство конфигурации spring.lifecycle.timeout-per-shutdown-phase
: **** ``
spring.lifecycle.timeout-per-shutdown-phase=1m
Если мы добавим это, сервер будет ждать до одной минуты для завершения активных запросов. Значение по умолчанию для этого свойства — 30 секунд.
3. Заключение
В этом кратком руководстве мы увидели, как можно воспользоваться новой функцией корректного завершения работы в Spring Boot 2.3.