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() 메서드가 호출된 이후에 실행되는 코드는 비동기적으로 동작하게 됩니다.