首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在服务完成其工作后关闭服务

在服务完成其工作后关闭服务
EN

Stack Overflow用户
提问于 2019-08-02 19:12:55
回答 1查看 37关注 0票数 0

我正在创建一个监视文件的服务,一旦文件可用,它就会将其加载到db。一旦这项工作完成,我想要优雅地关闭应用程序。

但当我使用context.close时,它会抛出异常(尽管应用程序会关闭),但我想关闭它,而不会导致任何异常。

代码语言:javascript
运行
复制
@profile("non-test")
class Manager implements ApplicationContextAware{

@PostConstruct
public void init()
{
    //watch for file and as soon as file  is available invokde trigger()
}

public void trigger()
{
    //load to db
    shutodown()
}

public void shutdown()
{
    SpringApplication.exit(context);
}
}

当我调用shutdown时,它抛出下面的异常。AnnotationConfigApplicationContext已关闭

我希望应用程序能够优雅地关闭,没有任何异常。

EN

回答 1

Stack Overflow用户

发布于 2019-08-02 19:32:28

你的问题很可能是Spring依赖的存在,这使得你的应用程序存活了很长时间。这种依赖性例如是spring-boot-starter-web。这个启动器包括Servlet容器,作为依赖,Spring将在默认情况下永远运行。

如果类路径上没有这样的依赖项,那么Spring Boot应用程序将自动关闭(不需要任何特殊的操作来终止它)。我建议你看看Spring guides for batch job的一些内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57325360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档