Commit 77bd7035 authored by xiaoguang.xu's avatar xiaoguang.xu

fix : 默认shutdown 第一个找到的容器

parent 70a7c44a
......@@ -25,11 +25,13 @@
<properties>
<java.version>1.8</java.version>
<lombok.version>1.16.20</lombok.version>
<guava.version>23.0</guava.version>
<apollo.client.version>0.10.2</apollo.client.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.test.skip>true</maven.test.skip>
<common.parent.version>0.2.0</common.parent.version>
</properties>
<dependencies>
......@@ -43,7 +45,7 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<version>${lombok.version}</version>
</dependency>
</dependencies>
......@@ -52,22 +54,22 @@
<dependency>
<groupId>cn.quantgroup</groupId>
<artifactId>commons-spring</artifactId>
<version>0.2.0</version>
<version>${common.parent.version}</version>
</dependency>
<dependency>
<groupId>cn.quantgroup</groupId>
<artifactId>commons-core</artifactId>
<version>0.2.0</version>
<version>${common.parent.version}</version>
</dependency>
<dependency>
<groupId>cn.quantgroup</groupId>
<artifactId>shutdown-spring-boot-starter</artifactId>
<version>0.2.0</version>
<version>${common.parent.version}</version>
</dependency>
<dependency>
<groupId>cn.quantgroup</groupId>
<artifactId>brave-spring-boot-starter</artifactId>
<version>0.2.0</version>
<version>${common.parent.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
......
......@@ -27,12 +27,15 @@ public class DefaultSignalHandler implements SignalHandler {
String applicationName = context.getApplicationName();
log.info("开始执行停止{}服务", applicationName);
GracefulShutdownProperties bean = context.getBean(GracefulShutdownProperties.class);
String shutdownBeanName = null;
try {
String[] shutdownBeanNames = context.getBeanNamesForType(Shutdown.class);
shutdownBeanName = shutdownBeanNames[0];
//如果不是web应用. 这里会找不到shutdown bean
context.getBean(Shutdown.class).shutdown(bean.getTimeout());
log.info("servlet container 停止接收请求");
context.getBean(shutdownBeanName, Shutdown.class).shutdown(bean.getTimeout());
log.info("web 容器 停止接收请求");
} catch (Exception e) {
log.info("Web 容器 shutdown 失败, 可能没有 Web 容器");
log.info("Web 容器 shutdown 失败, 检测到你的容器是: {}", shutdownBeanName);
}
log.info("{} 即将执行 @PreDestroy 方法", applicationName);
System.exit(0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment