我有一个事件流作为输入,想要对它们进行一系列转换,然后将它们缓冲到List中,最后在另一个系统中执行批量写入。一旦输入流被耗尽,我想手动停止这个需要将剩余缓冲区刷新为写入的过程。什么是让它始终如一地工作的最佳方式?
示例:
Flux.from(<source>)
.map(<some transform>)
.buffer(4096)
.subscribe(<batched writer that takes a List>)
有了上述内容,如果我取消批量编写的订阅,我将丢失缓冲区中待处理的内容。有什么方法可以“完成”原始源,从而导致整个管道中的刷新/消耗,以确保没有事件丢失?