作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 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();
关于java - 如何在 Java 中的某个时间后停止执行 Flux?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62703852/
我是一名优秀的程序员,十分优秀!