
elapsed() 오퍼레이터elapsed()는 Flux에서 emit되는 각 데이터 항목마다 이전 항목이 emit된 이후 경과한 시간(ms) 을 측정하여 함께 emit하는 오퍼레이터이다.
각 요소는 Tuple2<Long, T> 형태로 전달되며, 첫 번째 값(T1)은 경과 시간, 두 번째 값(T2)는 원래의 데이터이다.
Flux.range(1, 5)
.delayElements(Duration.ofSeconds(1)) // 1초 간격으로 emit
.elapsed()
.subscribe(data -> System.out.println("Elapsed Time: " + data.getT1() + "ms, Data: " + data.getT2()));
Thread.sleep(6000);
Elapsed Time: 1005ms, Data: 1
Elapsed Time: 1003ms, Data: 2
Elapsed Time: 1002ms, Data: 3
Elapsed Time: 1001ms, Data: 4
Elapsed Time: 1004ms, Data: 5
Flux<Tuple2<Long, T>> 형태이며, T1 = elapsed time, T2 = 원본 데이터