控制Spring Boot优雅关闭

7

在Spring Boot中,有没有一种方法可以控制应用程序的优雅关闭

我知道您可以在bean中拥有@PreDestroy方法,但是如何控制这些@PreDestroy方法被调用的顺序呢?

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

例如,我想要实现的是:
1)停止监听REST端点上的新请求
2)防止Rabbit消息侦听器接受新消息
3)等待在关闭之前已经开始但尚未完成的所有处理。

1个回答

3

Spring Boot 2.3.0 增加了对 优雅关闭 的支持。

您可以通过设置 server.shutdown=graceful 属性来启用优雅关闭。

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

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

Spring Boot文档


如果您无法升级到Spring Boot 2.3,则可以查看下面的项目:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接