Spring WebFlux Flux 비동기 실행 확인 코드

배드웅·2023년 3월 16일
0

Spring WebFlux의 Flux를 사용하여 비동기적으로 데이터를 처리하는 과정에서 Flux가 비동기적으로 작동하는지 확인하는 방법에 대해 예제 코드를 작성해보겠습니다.

Flux<Integer> numbers = Flux.just(1, 2, 3, 4, 5)
        .delayElements(Duration.ofMillis(500));

System.out.println("Before subscribe");

numbers.subscribe(number -> System.out.println(number));

System.out.println("After subscribe");

위 예제 코드에서는 Flux 객체를 생성할 때 delayElements() 메서드를 사용하여 각 데이터가 전송되는 시간을 500밀리초로 지연시키도록 설정하였습니다.

또한, subscribe() 메서드 호출 전과 후에 "Before subscribe"와 "After subscribe" 메시지를 출력하도록 코드를 작성하였습니다.

이제 이 코드를 실행해보면, "Before subscribe" 메시지가 먼저 출력되고, 이후에 Flux에서 생성된 숫자들이 500밀리초 간격으로 출력되는 것을 확인할 수 있습니다.
그리고 마지막으로 "After subscribe" 메시지가 출력됩니다.

이를 통해, Flux가 비동기적으로 작동하는 것을 확인할 수 있습니다.
Flux에서 생성된 데이터들은 비동기적으로 출력되며, subscribe() 메서드 호출 이후의 코드는 바로 실행됩니다.
따라서, subscribe() 메서드가 호출되기 이전에 실행되는 코드와 subscribe() 메서드가 호출된 이후에 실행되는 코드는 비동기적으로 동작하게 됩니다.

profile
개발자

0개의 댓글