【发布时间】:2019-10-19 06:03:42
【问题描述】:
我想对 Flux 执行移动窗口计算并生成包含计算值的 Flux,但我不知道如何完成此操作。
作为一个简化的例子,假设我有一个整数通量,我想用这个通量中每 3 个连续整数的总和生成一个新通量。举例说明:
第一个通量包含从 1 到 8 的整数:{1, 2, 3, 4, 5, 6, 7, 8}
结果通量应包含总和:{1+2+3, 2+3+4, 3+4+5, 4+5+6, 5+6+7, 6+7+8}
我可以很容易地产生第一个通量并推导出包含连续 3 个值的通量,如下所示:
Flux<Integer> f1 = Flux.range(1,8);
Flux<Flux<Integer>> f2 = f1.window(3,1);
我也可以 subscribe() 到 f2 并计算总和,但我不知道如何同时将这些总和作为新的 Flux 发布。
是我遗漏了一些简单的事情,还是这种事情真的很难做到?
【问题讨论】:
标签: java project-reactor