我在代码中使用Spring的ThreadPoolTaskExecutor来处理许多并发请求。下面是我的代码:
public void startProcess(Data data){
taskExecutor.submit(new Callable<Object>() {
@Override
public Object call() throws Exception {
doProcess(data);
return "";
}
});
}
注意:每次收到请求时都会调用startProcess方法。平均而言,每小时将有大约2000个请求。
在随机时间,应用程序变得非常缓慢,无法使用。检查tomcat catalina日志时,发现内存泄漏错误。我的直觉是由于这个ThreadPoolTaskExecutor。我应该在doProcess之后关闭它吗?有一个更好的方法吗?我应该配置ThreadPoolTaskExecutor专用的东西吗?(当前我使用的是默认配置)