首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring SmartLifecycle start()方法未执行[已解决]

Spring SmartLifecycle start()方法未执行[已解决]
EN

Stack Overflow用户
提问于 2021-11-01 05:39:01
回答 1查看 39关注 0票数 0

在我的spring应用程序中,我有一个线程池管理器,它在start()期间创建一些线程,并将这些线程添加到池中。但是在运行时,start()方法永远不会执行。

代码语言:javascript
复制
@Component
public class ThreadPoolManager implements SmartLifecycle {

    private static final Logger logger = 
      LoggerFactory.getLogger(ThreadPoolkManager.class);

    ScheduledExecutorService httpCheckPool = Executors.newScheduledThreadPool(10);

    @Override
    public void start() {
       /**
        * Start some threads
        */
    }

    @Override
    public void stop() {
        httpCheckPool.shutdown();
    }

    @Override
    public boolean isRunning() {
        return !httpCheckPool.isTerminated();
    }

    public synchronized void addServiceToCheck(NewService service){
        /**
         * Add service to the threadpool
         */
    }

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-01 06:38:35

这是为那些面临类似问题的人准备的。isRunning()start()之前被调用,因此确保isRunning()最初返回false,然后只执行start()。执行此操作的简单方法是使用标志。

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

https://stackoverflow.com/questions/69793002

复制
相关文章

相似问题

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