반응형
Reactor의 Scheduler는 비동기 작업을 관리하는데 사용된다.
Schedulers.immediate() : 현재 쓰레드에서 동기작업 실행
Schedulers.single() : 단일 백그라운드 쓰레드에서 작업 실행
Schedulers.parallel() : 병렬로 사용할 수 있는 별도 쓰레드 풀로 작업 실행 (CPU 개수)
Schedulers.boundedElastic() : 별도의 쓰레드로 그때 그때 맞게 유연하게 작업 실행 (쓰레드 개수의 제한은 있음)
public Flux<Integer> fluxMapWithSubscribeOn() {
return Flux.range(1, 10)
.map(i -> i * 2)
.subscribeOn(Schedulers.boundedElastic())
.log();
}
public Flux<Integer> fluxMapWithPublishOn() {
return Flux.range(1, 10)
.map(i -> i + 1)
.publishOn(Schedulers.boundedElastic())
.log()
.map(i -> i * 2);
}
private Scheduler1 scheduler1 = new Scheduler1();
@Test
void fluxMapWithSubscribeOn() {
StepVerifier.create(scheduler1.fluxMapWithSubscribeOn())
.expectNextCount(10)
.verifyComplete();
}
@Test
void fluxMapWithPublishOn() {
StepVerifier.create(scheduler1.fluxMapWithPublishOn())
.expectNextCount(10)
.verifyComplete();
}
반응형
'Spring Boot(JAVA)' 카테고리의 다른 글
5. Reactive - Reactor와 연산자 (0) | 2024.04.04 |
---|---|
4. Reactive - Spring MVC VS Webflux (0) | 2024.04.04 |
3. Reactive - Netty (0) | 2024.04.04 |
2. Reactive - CompletableFuture (0) | 2024.04.04 |
1. Reactive - 함수형 인터페이스 / 블로킹 & 논블로킹 (0) | 2024.04.04 |