gpt4 book ai didi

java - 当 spring 上下文关闭时停止 ConcurrentTaskScheduler

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:07 25 4
gpt4 key购买 nike

我正在使用AnnotationConfigApplicationContext编写一个简单的Spring应用程序。我的应用程序中有一个 ConcurrentTaskScheduler 。 Spring 上下文关闭时停止 ConcurrentTaskScheduler 的最佳实践是什么?

更新:主要问题是当 Junit 在 @After 注释中关闭上下文时,所有线程都将终止,但是当我在应用程序结束时手动关闭上下文时,ConcurrentTaskScheduler 运行的某些线程将继续运行。

最佳答案

让 Spring 自行处理关闭。

将 ScheduledExecutorService 传递给您的 ConcurrentTaskScheduler。
添加一个带有注释 @PreDestroy 的方法,其中关闭 ScheduledExecutorService。

    @PreDestroy
public void cleanUp() throws InterruptedException {
scheduleExecutorService.shutdown();
try {
scheduleExecutorService.awaitTermination(10000, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
scheduleExecutorService.shutdownNow();
throw e;
}
}

关于java - 当 spring 上下文关闭时停止 ConcurrentTaskScheduler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40993230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com