Java 限制发布服务器中的预取

Java 限制发布服务器中的预取,java,performance,reactive-programming,project-reactor,Java,Performance,Reactive Programming,Project Reactor,我想创建一个Flux,它具有通过有限的预取按需生成的元素 我尝试了以下方法,但看起来此代码无法处理背压,因为generateElements变得非常大(1011): AtomicInteger generateElements=新的AtomicInteger(0); 通量源=通量 .创建(发射器->{ while(true) next(generateeelements.getAndIncrement()); }) .subscribeon(Schedulers.elastic()) .限制(1

我想创建一个
Flux
,它具有通过有限的预取按需生成的元素

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

AtomicInteger generateElements=新的AtomicInteger(0);
通量源=通量
.创建(发射器->{
while(true)
next(generateeelements.getAndIncrement());
})
.subscribeon(Schedulers.elastic())
.限制(1);
source.take(4)subscribe(System.out::println);
断言(generateeelements.get()).isEqualTo(5);
如何使我的
通量
仅限于一次预取?

在定义单个项目排放时,您可以使用which期望可调用:

AtomicInteger generateElements=新的AtomicInteger(0);
生成(发射器->发射器.next(generateElements.getAndIncrement()))
.subscribeOn(Schedulers.elastic())
.take(4)
.subscribe(System.out::println);
在定义单个项目排放时,您可以使用期望可调用的:

AtomicInteger generateElements=新的AtomicInteger(0);
生成(发射器->发射器.next(generateElements.getAndIncrement()))
.subscribeOn(Schedulers.elastic())
.take(4)
.subscribe(System.out::println);