사용자 도구

사이트 도구


springframework:async

문서의 이전 판입니다!


Spring @Async

설정

@EnableAsync
public class SpringAsyncConfig extends AsyncConfigurerSupport {
 
    // 기본 taskExecutor 
    @Bean
    @Override
    public Executor getAsyncExecutor() {
        return new ThreadPoolTaskExecutor(); // 객체 설정해줄것.
    }
 
}

ThreadPoolTaskExecutor 설정

  • wait 설정으로 서버 종료시 남은 작업을 기다릴 시간 확보
  • waitForTasksToCompleteOnShutdown=true
  • awaitTerminationSeconds=초

Cached Thread Pool 효과

  • QueueCapacity를 0으로 만들면 Cached Thread Pool 처럼 작동한다.
  • 기본 CorePoolSize 만큼 풀을 생성하고,
  • 필요하면 쓰레드풀을 최대 MaxPoolSize 만큼 증가시키고
  • 안 사용하는 시간이 KeepAliveSeconds가 지나면 쓰레드를 없앤다.
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
threadPoolTaskExecutor.setThreadNamePrefix("XXXX-");
threadPoolTaskExecutor.setCorePoolSize(10);
threadPoolTaskExecutor.setMaxPoolSize(Integer.MAX_VALUE);
threadPoolTaskExecutor.setQueueCapacity(0);
threadPoolTaskExecutor.setKeepAliveSeconds(60);
threadPoolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);
threadPoolTaskExecutor.setAwaitTerminationSeconds(15);
springframework/async.1532934666.txt.gz · 마지막으로 수정됨: 2018/07/30 16:11 저자 kwon37xi