2017-05-04 4 views
0

동일한 JVM 인스턴스에서 여러 스프링 배치 분할 작업을 실행 중입니다. 각 스레드는 3 개의 스레드를 사용하도록 구성되어 있지만 새로운 작업이 시작될 때마다 로그에서 SimpleAsyncTaskExecutor이 스레드 번호를 계속 증가시키는 것을 볼 수 있습니다.SimpleAsyncTaskExecutor가 스레드를 해제하지 않습니다.

그래서 제 작업 보여준다

09 : 53 : 02.370 [SimpleAsyncTaskExecutor-1] INFO ...
09 : 53 : 02.370 [SimpleAsyncTaskExecutor-2] INFO ...

하고 다음 작업 보여준다

09 : 53 : 02.370 [SimpleAsyncTaskExecutor-3] INFO ...
09 : 53 : 02.370 [SimpleAsyncTa sk0ecutor-4] 정보 ...

새로운 작업마다 1과 2의 스레드를 사용하고 새로운 것을 생성하지 않을 것으로 예상 했었습니다. 매번 작업을 종료하지만 필요한 경우 코드를 게시 할 수 있습니다.

+1

를 구성? 'SimpleAsyncTaskExecutor'는 async 실행을위한 새로운 쓰레드를 생성합니다. 그렇지 않은 경우 비동기 처리를 올바르게 구성해야합니다 (분명히 수행하지 않은 것). –

답변

0

SimpleAsyncTaskExecutor 스레드를 재사용하지 않습니다. 또한 SimpleAsyncTaskExecutor은 기본적으로 무제한 스레드를 만듭니다.

재사용 스레드의 경우 ThreadPoolTaskExecutor을 사용해야합니다.

은 대한 자세한 내용은 아래를 참조하세요 : 무슨

https://egkatzioura.com/2017/10/25/spring-and-threads-taskexecutor/

https://egkatzioura.com/2017/10/25/spring-and-async/

https://egkatzioura.com/2017/10/25/spring-and-threads-transactions/

How to control the number of parallel Spring Batch jobs

관련 문제