gpt4 book ai didi

java - Project Reactor 将发布者一分为二,至少有两个订阅者

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

如何在 Reactor 中将发布者分成两个,以便存在两个相同的数据流,以便在不同流中的下游处理?

因此我可以映射每个流并单独订阅每个流。

我在 API 中看不到任何表明此信息位于 API 上的信息。 .

我需要等到两个订阅者都启动并准备好后才能发布。

最佳答案

感谢您的输入并没有直接思考,当然只是有多个订阅者:

  val flux = Flux.just("MyData1", "MyData2", "MyData3");

flux.doOnNext { println("Subscribing one$it") }.subscribe()

flux.doOnNext { println("Subscribing Two$it") }.subscribe()

将输出:

Subscribing oneMyData1
Subscribing oneMyData2
Subscribing oneMyData3
Subscribing TwoMyData1
Subscribing TwoMyData2
Subscribing TwoMyData3

如上所述,有 Share但这个 API 不允许设置最小订阅者数量,因此最好调用下面的函数,就我而言,我想等到我们有两个订阅者。文档指出

a Flux that upon first subscribe causes the source Flux to subscribe once, late subscribers might therefore miss items.

val flux = Flux.just("MyData1", "MyData2", "MyData3").publish().refCount(2)

这会产生以下输出,以确保在启动第二个订阅者出现延迟时不会丢失消息。

Subscribing oneMyData1
Subscribing TwoMyData1
Subscribing oneMyData2
Subscribing TwoMyData2
Subscribing oneMyData3
Subscribing TwoMyData3

关于java - Project Reactor 将发布者一分为二,至少有两个订阅者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58351670/

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