Java 如何在发生异常时自动重新启动springboot应用程序

Java 如何在发生异常时自动重新启动springboot应用程序,java,spring-boot,Java,Spring Boot,如果在执行过程中发生异常,是否有任何方法可以配置springboot应用程序以重新启动(整个容器) 我的应用程序是SpringBoot批处理应用程序,它将数据写入一致性缓存,若缓存因某种原因停止,应用程序在抛出RequestTimeOutException后就会停止,并且必须手动重新启动 您可以通过添加一些依赖项来尝试以下方法: spring boot starter actuator:在该机制中,执行器公开了用于检查应用程序状态、日志、获取线程转储等的数量 springcloudcontex

如果在执行过程中发生异常,是否有任何方法可以配置springboot应用程序以重新启动(整个容器)


我的应用程序是SpringBoot批处理应用程序,它将数据写入一致性缓存,若缓存因某种原因停止,应用程序在抛出RequestTimeOutException后就会停止,并且必须手动重新启动

您可以通过添加一些依赖项来尝试以下方法:

  • spring boot starter actuator
    :在该机制中,执行器公开了用于检查应用程序状态、日志、获取线程转储等的数量

  • springcloudcontext
    :springcloudcontext具有
    RestartEndpoint
    ,您可以将其“自动连接”到应用程序中,并向其公开API端点 重新启动应用程序


您可以通过添加一些依赖项来尝试以下方法:

  • spring boot starter actuator
    :在该机制中,执行器公开了用于检查应用程序状态、日志、获取线程转储等的数量

  • springcloudcontext
    :springcloudcontext具有
    RestartEndpoint
    ,您可以将其“自动连接”到应用程序中,并向其公开API端点 重新启动应用程序


如果您使用的是Liunx,您可以创建一个系统服务,该服务在停止时自动重新启动。您可以在引发异常时停止应用程序。您可以使用应用程序上下文以编程方式重新启动spring boot应用程序,请参阅。只需编写一个处理重新启动的方法,并将其添加到catch子句中。我将尝试-thanksNote,即您应该注册关机挂钩,并在热刷新之前添加清理,以防止资源泄漏。如果您使用的是Liunx,则可以创建一个系统服务,该服务在停止时自动重新启动。您可以在引发异常时停止应用程序。您可以使用应用程序上下文以编程方式重新启动spring boot应用程序,请参阅。只需编写一个处理重新启动的方法,并将其添加到catch子句中。我将尝试-thanksNote,您应该注册shutdown hook并在热刷新之前添加清理,以防止资源泄漏。我不知道spring cloud上下文,但actuator在这方面似乎没有帮助。您如何捕获异常?这是不可能的。即使用户提出了一些黑客解决方案,也会很难看。@aniketsahraw一旦你从spring boot admin获得了足够的应用程序运行状况信息,你就不能在需要的时候重新启动应用程序吗?是的,它会发生。OP将需要填充
info
或其他内容,但是另一个服务将需要定期轮询数据,这有点过分了。我认为一个好的解决方案是直接监听服务内部的异常,并触发一个不需要任何其他服务的热刷新,但这是我的观点;)我不知道SpringCloud的上下文,但执行器在这里似乎没有帮助。您如何捕获异常?这是不可能的。即使用户提出了一些黑客解决方案,也会很难看。@aniketsahraw一旦你从spring boot admin获得了足够的应用程序运行状况信息,你就不能在需要的时候重新启动应用程序吗?是的,它会发生。OP将需要填充
info
或其他内容,但是另一个服务将需要定期轮询数据,这有点过分了。我认为一个好的解决方案是直接监听服务内部的异常,并触发一个不需要任何其他服务的热刷新,但这是我的观点;)