묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 배치
ThreadPoolTaskExecutor 여러 Job 실행 시 대기 처리
안녕하세요, 강사님 @Slf4j@RequiredArgsConstructor@Configuration@EnableBatchProcessingpublic class BatchConfig extends DefaultBatchConfigurer { @Override public JobLauncher createJobLauncher() throws Exception { ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); taskExecutor.setCorePoolSize(1); taskExecutor.setMaxPoolSize(2); taskExecutor.setQueueCapacity(500); taskExecutor.afterPropertiesSet(); SimpleJobLauncher jobLauncher = new SimpleJobLauncher(); jobLauncher.setTaskExecutor(taskExecutor); jobLauncher.setJobRepository(createJobRepository()); jobLauncher.afterPropertiesSet(); return jobLauncher; }//...} 공통으로 Job 관리할때는 JobLauncher에 ThreadPoolTaskExecutor을 등록해서 대기작업을 했습니다. 만약 엑셀 가져오기(업로드), 통계배치 등 배치Job 종류가 여러개이고 따로 관리해야할때, 엑셀 pool 2개, 통계배치pool 1개 이렇게 따로 pool 을 만들고 싶다면, 어떻게 해야할까요? Job 종류 마다 JobLauncher 을 여러개 만들어야 하는건가요? pool 개수 이상에 요청이 들어오면 대기상태였다가 앞의 배치 작업 끝나면 실행시키는 방식을 생각하고 있습니다. ex. 엑셀 pool 2개, 통계배치pool 1개 일 경우 엑셀가져오기 작업 요청이 3번 들어오면 앞의 두 작업은 실행되고 나머지 하나는 대기상태. 동시에 다른 통계배치작업 요청이 2번 들어오면 앞의 한 작업은 실행되고 나머지 하나는 대기상태.
-
미해결스프링 배치
docker db (mysql) 이 죽는 현상이 있습니다.
안녕하세요. 좋은 강의 만들어주셔서 감사합니다. 아래와 같이 강좌와 유사하게 spring.datasource.hikari 로 mysql 설정을 한 후 간단한 job 을 실행시키면 docker 로 설치한 mysql db 가 죽는 현상이 있습니다. 혹시 hikari 설정이 부족해서 그런 것일까요? 강좌에서는 잘 진행이 되는것 같아서 질문드립니다. 그래서 주석 처리하고 기존에 하던 방식으로 spring.datasource 를 이용해서 mysql 설정을 했습니다. spring.datasoruce 는 datasource 설정인거 같고, spring.datasource.hikari 는 hikari connection pool 설정인거 같은데요. 헷갈리네요. 어디에 db 설정을 정의하는것이 기본일까요? spring: profiles: active: local---spring: config: activate: on-profile: local datasource:# hikari:# jdbc-url: jdbc:mysql://av-api01-dc.nfra.io:23306/aida_project?useUnicode=true&characterEncoding=utf8# username: root# password: root# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver batch: jdbc: initialize-schema: always