본문 바로가기
프로젝트/MovMag

[MovMag] 20231031 오늘 배운 것 (@Asnyc)

by JayAlex07 2023. 10. 31.

[MovMag] 20231031 오늘 배운 것

 

@Async

 

TMDB 오픈 API를 가져올 때, 너무 많은 데이터를 가져오는 탓에 데이터를 수집하는 속도가 느렸다

  • 500 페이지의 영화 (한 페이지 당 20개) => 10,000개
  • 캐스트 정보 (한 영화를 만들기 위해 많은 사람들이 필요하다) : 163,404명

 

동기적으로 할 때에는 예측할 때에는 1시간에 약 120페이지의 데이터를 저장할 수 있었다

 

비동기를 사용하여 데이터를 가지고 왔을 때, 10분 안에 50페이지의 데이터를 저장했음 (1시간 안에 저장)

 
 
AsnycConfig
@EnableAsync
@Configuration
public class AsyncConfig implements AsyncConfigurer {

    @Override
    public Executor getAsyncExecutor(){
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(5); // 기본적으로 실행을 유지하는 스레드 수
        executor.setMaxPoolSize(10); // 동시에 실행할 수 있는 최대 스레드 수
        executor.setQueueCapacity(100); // 작업 큐의 용량
        executor.setThreadNamePrefix("AsyncExecutor-"); // 생성되는 스레드의 이름 접두사
        executor.initialize();
        return executor;

    }
}
 
Service
@Async
public Response doSomething() {
}

'프로젝트 > MovMag' 카테고리의 다른 글

[MovMag] WebClient  (0) 2023.11.06
[MovMag] ElasticSearch + MySQL  (0) 2023.11.03
[MovMag] ElasticSearch setup  (0) 2023.11.02
[MovMag] 오늘 배운 것 - 20231030  (0) 2023.10.31