Подача последовательности в комбайн Akka Stream () - PullRequest
0 голосов
/ 24 января 2020

Как вы используете метод Akka Stream combine для объединения последовательности источников? Например, val sources = Seq[Source[T,_]].

Кажется, что нет сигнатуры метода, которая принимает Seq / Iterable / et c ...
Вместо этого требуется, чтобы первый и второй элементы объединялись отдельно, и тогда varargs для остальных?

def combine[T, U](first: Source[T, _], second: Source[T, _], rest: Source[T, _]*)(strategy: Int => Graph[UniformFanInShape[T, U], NotUsed]): Source[U, NotUsed]

Какой самый простой способ вызвать комбинацию с Seq?

1 Ответ

1 голос
/ 24 января 2020

Что-то вроде этого возможно:

val source = sources match {
  case Seq(a, b, rest@_*) => combine(a, b, rest:_*)(strategy)
  case Seq(a) => a
  case _ => ??? // handle case when there are no sources: throw? empty source?
}
...