我正在尝试使用 Source.actorRef 方法来创建一个 akka.stream.scaladsl.Source 对象.形式的东西
I'm trying to use the Source.actorRef method to create an akka.stream.scaladsl.Source object. Something of the form
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 的源对象?
我认为向源发送消息是某种形式
I assumed sending messages to the Source was something of the form
//does not compile weatherSource ! Weather("90210", 72.0, false) weatherSource ! Weather("02139", 32.0, true)但是 weatherSource 没有 ! 操作符或 tell 方法.
But weatherSource doesn't have a ! operator or tell method.
文档是没有过多描述如何使用 Source.actorRef,它只是说你可以......
The documentation isn't too descriptive on how to use Source.actorRef, it just says you can...
预先感谢您的评论和回复.
Thank you in advance for your review and response.
推荐答案你需要一个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)记住这都是实验性的,可能会改变!
Remember this is all experimental and may change!
更多推荐
访问由 Source.actorRef 创建的 akka 流源的底层 ActorRef
发布评论