Spring SmartLifecycle start() 方法未执行
Spring SmartLifecycle start() method not executed
在我的 spring 应用程序中,我有一个线程池管理器,它在 start() 期间创建一些线程并将它们添加到池中。但是虽然 运行 start() 方法永远不会执行。
@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
*/
}
任何帮助将不胜感激。
这是为面临类似问题的人准备的。 isRunning()
在 start()
之前被调用因此确保 isRunning()
returns false
最初然后只执行 start()
。简单的方法是使用标志。
在我的 spring 应用程序中,我有一个线程池管理器,它在 start() 期间创建一些线程并将它们添加到池中。但是虽然 运行 start() 方法永远不会执行。
@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
*/
}
任何帮助将不胜感激。
这是为面临类似问题的人准备的。 isRunning()
在 start()
之前被调用因此确保 isRunning()
returns false
最初然后只执行 start()
。简单的方法是使用标志。