Плавне завершення роботи підтримується всіма чотирма вбудованими вебсерверами (Jetty, Reactor Netty, Tomcat і Undertow), а також реактивними вебдодатками та вебдодатками на основі сервлетів. Воно здійснюється в межах закриття контексту програми і виконується на ранньому етапі зупинки бінів SmartLifecycle
. Ця процедура обробки припинення роботи використовує час очікування, який забезпечує період відтермінування, протягом якого існуючим запитам буде дозволено завершитись, але передача нових запитів буде заборонена. Точний спосіб заборони передачі нових запитів залежить від вебсервера, який використовується. Jetty, Reactor Netty та Tomcat перестануть приймати запити на мережному рівні. Undertow прийматиме запити, але одразу ж видаватиме відповідь "сервіс недоступний" (503).
Щоб активувати режим плавного завершення роботи, налаштуй властивість server.shutdown
, як показано в наступному прикладі:
server.shutdown=graceful
server:
shutdown: "graceful"
Щоб налаштувати період часу очікування, налаштуй властивість spring.lifecycle.timeout-per-shutdown-phase
, як показано в наступному прикладі:
spring.lifecycle.timeout-per-shutdown-phase=20s
spring:
lifecycle:
timeout-per-shutdown-phase: "20s"
SIGTERM
. Докладнішу інформацію див. у документації до твого IDE.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ