Last updated
Last updated
Executor
컨텍스트에서 빈이 없으면 스프링 부트는 비동기 태스크 실행 ( @EnableAsync
)과 스프링 MVC 비동기 요청 처리와 자동으로 연관 될 수있는 적절한 기본값과 ThreadPoolTaskExecutor
을 자동으로 구성한다 .
스레드 풀은 로드에 따라 확장 및 축소 할 수있는 8 개의 코어 스레드를 사용합니다. 이러한 기본 설정은 다음 예와 같이 spring.task.execution
네임 스페이스를 사용하여 세부 조정할 수 있습니다 .
이렇게하면 스레드 풀이 바운드 큐를 사용하도록 변경되므로 큐가 가득 차면 (100 개의 작업) 스레드 풀이 최대 16 개의 스레드로 증가합니다. 스레드가 10 초 동안 유휴 상태 일 때 (기본적으로 60 초가 아닌) 스레드가 재생되면서 풀 축소가 더 적극적입니다.
예약 된 작업 실행 ( @EnableScheduling
)에 연결해야하는 경우ThreadPoolTaskScheduler
도 자동 구성 할 수 있습니다 . 스레드 풀은 기본적으로 하나의 스레드를 사용하며 이러한 설정은 spring.task.scheduling
네임 스페이스를 사용하여 세부 조정할 수 있습니다 .
TaskExecutorBuilder
Bean과 TaskSchedulerBuilder
Bean 둘다 사용자 정의 실행 프로그램 또는 스케줄러를 작성해야 할 경우 컨텍스트에서 사용 가능하게됩니다.
컨텍스트에서 커스텀 Executor
을 정의했다면 , 정규 태스크 실행 (즉 @EnableAsync
)은 그것을 손쉽게 사용하지만, Spring MVC 지원은 AsyncTaskExecutor
구현 (applicationTaskExecutor
)을 필요로하기 때문에 구성되지 않을 것이다 . 목표 배열에 따라, ThreadPoolTaskExecutor
로 변경 하거나 ThreadPoolTaskExecutor
와 사용자 정의 Executor
를 래핑하는 AsyncConfigurer을 둘다 정의할 수 있습니다.
자동 구성된 TaskExecutorBuilder
를 사용하면 자동 구성이 기본적으로 수행하는 것을 재현하는 인스턴스를 쉽게 작성할 수 있습니다.