티스토리 뷰
Spring Boot에서 기본적으로 모든 @Scheduled 작업은 Spring에 의해 생성된 Thread pool 개수는 1개이다. 하나의 Scheduled이 돌고 있으면 다 끝나야 다음 Scheduled이 실행된다.
아래 로그를 추가하여 확인이 가능하다.
logger.info("Current Thread : {}", Thread.currentThread().getName());
Spring Boot에서 설정을 통해 모든 작업을 실행하기 위해 스레드 풀을 사용하도록 아래와 같이 구성할 수 있다.
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
@Configuration
public class SchedulerConfig implements SchedulingConfigurer {
private final int POOL_SIZE = 10;
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(POOL_SIZE);
threadPoolTaskScheduler.setThreadNamePrefix("my-scheduled-task-pool-");
threadPoolTaskScheduler.initialize();
scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
}
}
간단하게 yml 파일을 통해서도 가능하다.
spring:
task:
scheduling:
pool:
size: 10
thread-name-prefix: my-scheduled-task-pool-
'프로그래밍 > Back end' 카테고리의 다른 글
[Back end] Java try catch finally 구문에서의 return (1) | 2019.11.18 |
---|---|
[Back end] Java Exception 계층 구조 (0) | 2019.11.14 |
[Back end] Java DTO, VO 객체 직렬화(Serializable) (0) | 2019.10.24 |
[Back end] DAO 그리고 DTO, VO 차이 (0) | 2019.10.21 |
[Back end] MyBatis foreach 동적 SQL (0) | 2019.09.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- Linux 명령어
- 오라클
- 개발환경
- 이직
- 리액트 16
- 제주도 여행
- 제주도 3박4일 일정
- Java
- Eclipse
- 소프트웨어공학
- 회고
- 경력관리
- 성능분석
- javascript
- SQL
- 정렬 알고리즘
- 프로그래머
- 프로그래머스
- Tomcat
- sort algorithm
- 리눅스 명령어
- Collection
- React
- Maven
- 자바
- spring
- 오라클 내장 함수
- effective java
- 리액트
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함