亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Project Reactor 將發布者一分為二,至少有兩個訂閱者

Project Reactor 將發布者一分為二,至少有兩個訂閱者

飲歌長嘯 2023-10-19 18:21:05
如何在 Reactor 中將發布者分成兩個,這樣就存在兩個相同的數據流,可以在不同流的下游進行處理?因此我可以映射每個流并單獨訂閱每個流。我在 API 中看不到任何表明這是在API上的內容。我需要等到兩個訂閱者都啟動并準備好后才能發布。
查看完整描述

1 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

感謝您的輸入并沒有直接思考,當然只是有多個訂閱者,如下所示:


  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 不允許設置最小訂閱者數量,因此最好調用下面的函數,就我而言,我想等到我們有兩個訂閱者。文檔指出


首次訂閱的 Flux 會導致源 Flux 訂閱一次,因此遲到的訂閱者可能會錯過項目。


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

這會產生以下輸出,以確保在啟動第二個訂閱者出現延遲時不會丟失消息。


Subscribing oneMyData1

Subscribing TwoMyData1

Subscribing oneMyData2

Subscribing TwoMyData2

Subscribing oneMyData3

Subscribing TwoMyData3


查看完整回答
反對 回復 2023-10-19
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號