如何在独立的Tomcat非嵌入式Tomcat中正常关闭SpringBoot?

问题描述

我的环境:CentOS 7.x,JDK 8,Tomcat 9.0.37,SpringBoot 2.3.3发行版

我的基本配置如下:

management.endpoint.shutdown.enabled = true
server.shutdown = graceful
spring.lifecycle.timeout-per-shutdown-phase = 60m

一个简单的控制器演示:

@PostMapping("/addUser")
public String addUser() {
    // threadPool is a thread pool
    threadPool.execute(() -> {
        try {
            // simulation of a request process that takes a long time
            Thread.sleep(30000L);
            log.info("===== task completed!");
        } catch (InterruptedException e) {
            // ignore
        }
    });

    return "done";
}

如果我使用嵌入式Tomcat,则可以正常关闭。首先发送帖子请求:http:// xxx / xxx / addUser,然后发送帖子请求:/ acurator / shutwdown(或CTRL + C)

但是,如果我使用独立的Tomcat(将战争发送到Tomcat的webapps目录),则以下任何操作都不能正常关闭

send request /acurator/shutwdown
or
kill -2 pid
or 
kill -15 pid

如何在独立的tomcat中正常关闭SpringBoot?非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...