gpt4 book ai didi

java - Reactor Flux 发布方法

转载 作者:行者123 更新时间:2023-12-02 10:34:09 24 4
gpt4 key购买 nike

我需要 Reactor 项目中这两种方法的解释

docs-link

  • 发布()

Prepare a ConnectableFlux which shares this Flux sequence and dispatches values to subscribers in a backpressure-aware manner.

ConnectableFlux<T> publish()

还有

  • 发布(int预取)

Prepare a ConnectableFlux which shares this Flux sequence and dispatches values to subscribers in a backpressure-aware manner.

ConnectableFlux<T>  publish(int prefetch)

两者的大理石图是相同的。 int prefetch 参数的作用是什么?

我运行这些示例,结果是相同的

public static void publish() throws InterruptedException {
Flux fl = Flux.just(1, 2, 3, 4, 5, 6)
.delayElements(Duration.ofSeconds(1))
.publish()
.autoConnect();
fl.subscribe(printing);
Thread.sleep(4000);
fl.subscribe(printing);
}

public static void publishWithPrefetch() throws InterruptedException {
Flux fl = Flux.just(1, 2, 3, 4, 5, 6)
.delayElements(Duration.ofSeconds(1))
.publish(2)
.autoConnect();
fl.subscribe(printing);
Thread.sleep(4000);
fl.subscribe(printing);
}

最佳答案

您的两个文档链接都是同一目标。

预取允许您一次获得更多结果,从而在管理结果时允许某种缓冲。无论如何,最终你仍然会得到相同的结果;使用一种或另一种方法更多的是一个效率/性能问题。

关于java - Reactor Flux 发布方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53408598/

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