2017-11-23 11 views
0

레지스터 의존성 삽입 관통 된 의지를 갖는Akka 스트림은 동일한 시그니처가 다중 플로우를 등록 할 수있을 것인지 I는 관련 의심 동일한 유동 특성

class Application @Inject()(
    source: Source, 
    intermediateFlows: Seq[Flow[Int, Int, Any]], 
    sink: Sink, 
    materializer: ActorMaterializer) { 

    def run(): Unit = { 
     source 
     ... 
     .runWith(sink)(materializer) 
    } 
} 

보다 그래서 탐색 된 아이디어 자세히 API를 보면 forEach를 사용하여 플로우를 축적하고 단일 via를 수행합니다 (via 콜렉션 인 것처럼 보이지 않음). 그러나 나는이 일을 할 수 없었습니다.

누구든지 전에 이것을 달성 했습니까? 이것은 나쁜 생각입니까? API에서 뭔가를 놓친 적이 있습니까?

답변

0
이는 경우에만

  • 당신의 흐름이 동일한 입력 및 출력 종류가있는 일 것이라고 fold

    val combinedFlow = intermediateFlows.fold(Flow[Int])(_ via _) 
    
    source.via(combinedFlow).runWith(sink)(materializer) 
    

    주 같은 것을 찾고있는 것 같습니다

  • 당신 돈 흐름에 대해 신경 쓰지 마라.
+0

awesome : D ... 나는 그것을 시도 할 것이다. 초 안에 – Kanekotic