gpt4 book ai didi

java - 限制 Publisher 中的预取

转载 作者:行者123 更新时间:2023-12-02 01:23:29 25 4
gpt4 key购买 nike

我想创建一个 Flux,它具有在有限预取的情况下按需生成的元素。

我尝试了以下操作,但看起来此代码无法处理背压,因为 generateElements 变得非常大(1011):

AtomicInteger generateElements = new AtomicInteger(0);
Flux<Integer> source = Flux
.create(emitter -> {
while (true)
emitter.next(generateElements.getAndIncrement());
})
.subsribeOn(Schedulers.elastic())
.limitRate(1);

source.take(4).subsribe(System.out::println);
assertThat(generateElements.get()).isEqualTo(5);

如何将我的 Flux 限制为仅一次预取?

最佳答案

您可以使用Flux.generate它需要一个可调用的地方,您可以在其中定义单个项目发射:

AtomicInteger generateElements = new AtomicInteger(0);

Flux.generate(emitter -> emitter.next(generateElements.getAndIncrement()))
.subscribeOn(Schedulers.elastic())
.take(4)
.subscribe(System.out::println);

关于java - 限制 Publisher 中的预取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com