Spring Boot中是否有一种方法可以控制应用程序正常关闭。
我知道您可以在bean中使用@PreDestroy方法,但是如何控制调用这些@PreDestroy方法的顺序。
可以有多个依赖于彼此的bean,上下文关闭是否已经在寻找这种依赖关系,并以正确的顺序调用@PreDestroy方法?
例如,我想完成的事情是:
1。)停止在其余端点上侦听新请求
2。)阻止Rabbit消息侦听器接受新消息
3。)等待关闭之前已开始但尚未完成的所有处理。
答案 0 :(得分:1)
Spring-boot-2-3-0 添加了对正常关机的支持。
您可以通过设置 server.shutdown=graceful
属性
要配置超时时间,可以使用
spring.lifecycle.timeout-per-shutdown-phase=20s
如果您无法升级到Spring Boot 2.3,则可以检查以下项目