Executor getAsyncExecutor() {
log.debug("Creating Async Task Executor");
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(50);
executor.setQueueCapacity(10_000);
executor.setThreadNamePrefix(appName + "-Executor-");
return new ExceptionHandlingAsyncTaskExecutor(executor);
}
когда оправляю много задач, то падает ошибка
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask[Not completed, task = org.springframework.aop.interceptor.AsyncExecutionInterceptor] rejected from java.util.concurrent.ThreadPoolExecutor
[Running, pool size = 50, active threads = 50, queued tasks = 100, completed tasks = 4]
можно ли как-то решить проблему не увеличивая queue capacity?
к примеру, проверить, есть ли свободные execotor'ы, если нет, то подождать.
видимо тасков больше чем размер очереди
У тредпула такой конструкто
Обсуждают сегодня