春季启动正常关闭

时间:2019-02-08 01:31:11

标签: spring-boot shutdown shutdown-hook application-shutdown

Spring Boot中是否有一种方法可以控制应用程序正常关闭。

我知道您可以在bean中使用@PreDestroy方法,但是如何控制调用这些@PreDestroy方法的顺序。

可以有多个依赖于彼此的bean,上下文关闭是否已经在寻找这种依赖关系,并以正确的顺序调用@PreDestroy方法?

例如,我想完成的事情是:

1。)停止在其余端点上侦听新请求

2。)阻止Rabbit消息侦听器接受新消息

3。)等待关闭之前已开始但尚未完成的所有处理。

1 个答案:

答案 0 :(得分:1)

Spring-boot-2-3-0 添加了对正常关机的支持。

您可以通过设置 server.shutdown=graceful 属性

来启用正常关机功能

要配置超时时间,可以使用

spring.lifecycle.timeout-per-shutdown-phase=20s

spring boot documentation

如果您无法升级到Spring Boot 2.3,则可以检查以下项目

https://github.com/gesellix/graceful-shutdown-spring-boot