第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用組的通量并行串行執(zhí)行

使用組的通量并行串行執(zhí)行

GCT1015 2022-09-28 15:31:34
假設(shè)我有這個(gè):Flux<GroupedFlux<Integer, Integer>> intsGrouped = Flux.range(0, 12)   .groupBy(i -> i % 3);并說(shuō)我有一個(gè)方法:Mono<Integer> getFromService(Integer i);我想為每個(gè)組并行呼叫,但請(qǐng)確保每個(gè)組中的呼叫是串行的。getFromService對(duì)于上面的示例,這將是具有這些輸入值的三個(gè)并行流:stream 1: 0 -> 3 -> 6 -> 9stream 2: 1 -> 4 -> 7 -> 10stream 3: 2 -> 5 -> 8 -> 11我試過(guò)這個(gè),但它沒(méi)有做我想做的事:Flux.range(0, 12)   .groupBy(i -> i % 3)   .flatMap(g -> g.flatMap(i -> getFromService(g.key(), i)))這是一次并行調(diào)用所有整數(shù)的服務(wù)。我該如何繼續(xù)?
查看完整描述

1 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用“連接映射”“平面映射”序列性而不是內(nèi)部.flatMap


如果要在每個(gè)組中按順序執(zhí)行(即每個(gè)組中一次只有一個(gè)訂閱),請(qǐng)使用 ,如下所示:getFromService.concatMap

Flux.range(0, 12)
   .groupBy(i -> i % 3)
   .flatMap(g -> g.concatMap(i -> getFromService(g.key(), i)))

如果組內(nèi)的并行執(zhí)行是可以的,但您只關(guān)心序列的發(fā)出順序,則使用 ,如下所示:flatMapSequential

Flux.range(0, 12)
    .groupBy(i -> i % 3)
    .flatMap(g -> g.flatMapSequential(i -> getFromService(g.key(), i)))

另一種選擇是將參數(shù)設(shè)置為 使用,但我建議使用上述方法之一。.flatMapconcurrency1



查看完整回答
反對(duì) 回復(fù) 2022-09-28
  • 1 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)