如何在 Java 中一段时间后停止执行 Flux?



如何在计时器(例如 1 秒(之后停止 Flux 中的发布(流(,如果仍有数字,则不会发布。例如,在 1000个数字之后,它们将不会打印。

@Test
public void test() {    

Flux.range(0, 20000)
// hier 
.delayElements(Duration.ofMillis(1))
.parallel(2)
.runOn(Schedulers.parallel())
.doOnNext(i -> {
System.out.println(i);
})
.sequential()
.blockLast();
}

您可以使用Flux.take(Duration)使 Flux 在一定持续时间后完成。

对于您发布的代码,阈值为 1 秒,如下所示:

Flux.range(0, 20000)
// hier 
.delayElements(Duration.ofMillis(1))
.parallel(2)
.runOn(Schedulers.parallel())
.doOnNext(i -> {
System.out.println(i);
})
.sequential()
.take(Duration.ofSeconds(1)) // <--
.blockLast();

最新更新