弹簧通量。如何缓冲对象一分钟,然后发出单声道

时间:2017-12-06 17:38:01

标签: spring-webflux

  1. 我有一个每秒生成SomeData的类/方法。
  2. 我需要:

    1. 将此SomeData收集到Somewhere<SomeData>中1分钟,
    2. 1分钟后收集并准备一些ReportObject
    3. 并通过EmitterProcessor<ReportObject>发送报告。
    4. 如何使用Flux实现?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

Flux<SomeData> data = //...
Flux<ReportObject> reports = data
  // if you want 60 seconds windows
  .window(Duration.ofMinutes(1))
  // use a reduce operator to create a report
  .flatMap(window -> window.reduce(..));