2017-02-21 21 views
0

У меня включен асинхронный метод с использованием аннотации @Async. Время от времени я вижу SimpleAsyncTaskExecutor количество потоков увеличивается экспоненциально. Любая идея по этому поведению?Проблема с методом загрузки Spring Async

+0

Вы настроили CustomThreadPool? – user121290

+0

Нет, я не настроил CustomThreadPool – Suraj

+0

Лучше, если вы настроите customThreadPool.Проверьте это. http://stackoverflow.com/questions/13206792/spring-async-limit-number-of-threads – user121290

ответ

0

Если оно растет буквально экспоненциально, это звучит, как метод асинхронного вызова, возможно, вызывает себя?

0

По умолчанию Spring использует SimpleAsyncTaskExecutor для асинхронного запуска методов. SimpleAsyncTaskExecutor генерирует новый поток с каждой задачей и не поддерживает объединение потоков и очередность задач. Итак, если метод async вызывается несколько раз за короткий промежуток времени, для каждой задачи будет открыто несколько потоков. Вы должны определить своего собственного исполнителя. См. Следующую ссылку: http://www.baeldung.com/spring-async