Springboot自动关闭并自动重启。

时间:2018-11-13 01:57:24

标签: java spring tomcat web

我遇到一个问题,我的springboot项目将关闭并自动重新启动。 在出现此问题之前,程序将完成计划作业,该计划作业将从Redis读取数据,然后与本地备份文件进行比较,如果有任何新数据出现,则程序将写入本地备份文件。 以下是关机日志 console log

2 个答案:

答案 0 :(得分:4)

如果在pom.xml文件中使用spring-boot-devtools依赖项,则对现有项目进行任何新更改时,它将自动重新启动该项目。与常规情况相比,在进行较小更改时,它会自动重新启动项目,并且应用程序启动时间也非常短,这会有所帮助。如果您不希望出现这种情况,则可以从pom.xml文件中删除以下依赖项,从而不会自动重启应用程序。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
 </dependency>

答案 1 :(得分:0)

您可以在我的应用程序中添加Shutdown挂钩。

在这两种情况下都会运行Java shutdown钩子。

  • 程序正常退出,或者我们调用System.exit()方法终止程序。阅读有关Java系统类的更多信息。
  • 用户中断,例如Ctrl + C,系统关闭等。

代码:

Runtime.getRuntime().addShutdownHook(new Thread("Shutdownhook") {
            public void run() {
                //code here
                //compare redis cache  
                //syn data and save local file.  
                try {
                    mainThread.join();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    instance.logger.error(e.getMessage(), e);
                }
            }
        });