[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 |