Ist es gut oder schlecht, ActorRef an andere Schauspieler weiterzugeben?
Ich versuche herauszufinden, ob ich es gewohnt bin, Akka zu überholenActorRef
herum zu anderen Schauspielern ist kein Anti-Muster.
Ich habe ein paar Schauspieler in meinem System. Einige sind langlebig (restClientRouter
,publisher
) und einige sterben, nachdem sie die Arbeit erledigt haben (geoActor
). Die kurzlebigen Schauspieler müssen Nachrichten an die langlebigen Schauspieler senden und brauchen daher ihreActorRef
s.
//router for a bunch of other actors
val restClientRouter = createRouter(context.system)
//publishers messages to an output message queue
val publisher: ActorRef = context.actorOf(Props(new PublisherActor(host, channel)), name = "pub-actor")
//this actor send a message to the restClientRouter and then sends the response
//to the publisher
val geoActor = context.actorOf(Props(new GeoInferenceActor(restClientRouter, publisher)), name = "geo-inference-actor")
Wie Sie sehen, übergebe ich die ActorRefs (restClientRouter
undpublisher
) an den Konstrukteur vonGeoInferenceActor
. Ist das okay oder nicht? Gibt es einen besseren Weg, dies zu tun?