gpt4 book ai didi

scala - 访问由 Source.actorRef 创建的 akka 流源的底层 ActorRef

转载 作者:行者123 更新时间:2023-12-03 10:13:59 26 4
gpt4 key购买 nike

我正在尝试使用 Source.actorRef创建 akka.stream.scaladsl.Source 的方法目的。某种形式

import akka.stream.OverflowStrategy.fail
import akka.stream.scaladsl.Source

case class Weather(zip : String, temp : Double, raining : Boolean)

val weatherSource = Source.actorRef[Weather](Int.MaxValue, fail)

val sunnySource = weatherSource.filter(!_.raining)
...

我的问题是: 如何将数据发送到基于 ActorRef 的源对象 ?

我认为向源发送消息是某种形式
//does not compile
weatherSource ! Weather("90210", 72.0, false)
weatherSource ! Weather("02139", 32.0, true)

但是 weatherSource没有 !运算符(operator)或 tell方法。

documentation关于如何使用 Source.actorRef 并没有太多描述,它只是说你可以......

预先感谢您的评论和回复。

最佳答案

您需要一个 Flow :

  import akka.stream.OverflowStrategy.fail
import akka.stream.scaladsl.Source
import akka.stream.scaladsl.{Sink, Flow}

case class Weather(zip : String, temp : Double, raining : Boolean)

val weatherSource = Source.actorRef[Weather](Int.MaxValue, fail)

val sunnySource = weatherSource.filter(!_.raining)

val ref = Flow[Weather]
.to(Sink.ignore)
.runWith(sunnySource)

ref ! Weather("02139", 32.0, true)

请记住,这都是实验性的,可能会改变!

关于scala - 访问由 Source.actorRef 创建的 akka 流源的底层 ActorRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com