[SPRING] 스프링 부트의 기본 스케줄러 풀 크기는 얼마입니까?
SPRING스프링 부트의 기본 스케줄러 풀 크기는 얼마입니까?
일부 작업을 수행하기 위해 spring-boot 및 @Scheduled 주석을 사용하고 있습니다.
스프링 부트에서 예약 된 작업의 기본 풀 크기가 기본적으로 무엇인지 알아낼 수 있습니까?
이유 : 다음 클래스는 작업을 병렬로 실행하지 않고 하나씩 실행합니다. 어쩌면 단 하나의 스레드 실 행자 만 기본적으로 구성됩니까?
@Service
public class ZipFileTesterAsync {
@Scheduled(fixedDelay = 60000, initialDelay = 500)
public void run() throws Exception {
System.out.println("import 1");
TimeUnit.MINUTES.sleep(1);
System.out.println("import 1 finished");
}
@Scheduled(fixedDelay = 60000, initialDelay = 1000)
public void run2() throws Exception {
System.out.println("import 2");
TimeUnit.MINUTES.sleep(1);
}
}
결과 : 첫 번째 완료 후 두 번째 작업이 실행됩니다.
해결법
-
==============================
1.예, 모든 @Scheduled 메소드는 기본적으로 단일 스레드를 공유합니다. 다음과 같이 @Configuration을 정의하여이 동작을 재정의 할 수 있습니다.
예, 모든 @Scheduled 메소드는 기본적으로 단일 스레드를 공유합니다. 다음과 같이 @Configuration을 정의하여이 동작을 재정의 할 수 있습니다.
@Configuration public class SchedulingConfigurerConfiguration implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(100); taskScheduler.initialize(); taskRegistrar.setTaskScheduler(taskScheduler); } }
이 예제는 모든 @Scheduled 메서드가 크기가 100 인 스레드 풀을 공유하도록합니다.
from https://stackoverflow.com/questions/29796651/what-is-the-default-scheduler-pool-size-in-spring-boot by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 종속성 삽입 Autowiring Null [duplicate] (0) | 2019.01.02 |
---|---|
[SPRING] XML 네임 스페이스는 어떻게 작동합니까? (0) | 2019.01.02 |
[SPRING] jsp의 세션 속성 인쇄 (0) | 2019.01.02 |
[SPRING] 스프링 부트 프로젝트에 메소드 기반 보안을 어떻게 추가합니까? (0) | 2019.01.02 |
[SPRING] Spring JpaRepository - 엔티티 분리 및 연결 (0) | 2019.01.02 |