假设我有这个:
Flux<GroupedFlux<Integer, Integer>> intsGrouped = Flux.range(0, 12)
.groupBy(i -> i % 3);
并说我有一个方法:
Mono<Integer> getFromService(Integer i);
我想为每个组并行呼叫,但请确保每个组中的呼叫是串行的。getFromService
对于上面的示例,这将是具有这些输入值的三个并行流:
stream 1: 0 -> 3 -> 6 -> 9
stream 2: 1 -> 4 -> 7 -> 10
stream 3: 2 -> 5 -> 8 -> 11
我试过这个,但它没有做我想做的事:
Flux.range(0, 12)
.groupBy(i -> i % 3)
.flatMap(g -> g.flatMap(i -> getFromService(g.key(), i)))
这是一次并行调用所有整数的服务。我该如何继续?
慕斯709654
相关分类