如何在 Java 中的某个时间后停止执行 Flux?
How to stop execution a Flux after a certain time in Java?
Flux 中的发布(Streaming)如何在计时器后停止例如1s,如果还有数,就不公布了。
例如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();
Flux 中的发布(Streaming)如何在计时器后停止例如1s,如果还有数,就不公布了。 例如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();