【问题标题】:How to create a source that collects dynamic values如何创建收集动态值的源
【发布时间】:2017-06-10 16:55:04
【问题描述】:

我已阅读文档,但不知何故无法定义我想要的来源。 我想定义一个动态收集整数列表的源。

def getValue(m:Map[String,Int]):Int = m.getOrElse("#abcd",0)

每当我调用这个函数时,我都想收集它的返回值。

感谢您的帮助!

【问题讨论】:

  • 我不太确定这里问的是什么。也许一个例子可以帮助..
  • val src = Source.single("abcd xyz pqr") ; val sink = Sink.foreach[List[String]](x=> println(x)) def splitString(x:String) = x.split(" ").toList src.map(splitString).runWith(sink) If你看看上面代码中的“src”——它是硬编码的,它只是一个元素,相反,我想定义一个动态收集行列表的源(假设我有一个函数,我可以从中获取字符串) the-fly,我想将其附加到源代码中)- 我说得通吗?

标签: akka akka-stream


【解决方案1】:

不是 100% 确定,但您可能正在寻找 Source.queue。示例:

  val source: Source[Int, SourceQueueWithComplete[Int]] = 
    Source.queue[Int](16, OverflowStrategy.backpressure)

  val sink: Sink[Int, NotUsed] = ???

  val queue: SourceQueueWithComplete[Int] = source.to(sink).run()

  queue.offer(1)
  queue.offer(2)
  queue.offer(3)

文档here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多