Я пытаюсь выяснить, не связано ли мое использование передачи Akka ActorRef
другим актерам не анти-шаблон.
У меня есть несколько актеров в моей системе. Некоторые из них долговечны (restClientRouter
, publisher
), а некоторые умирают после этого, они выполнили работу (geoActor
). Недолговечные актеры должны отправлять сообщения живым актерам и поэтому нуждаются в их ActorRef
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")
Как вы можете видеть, я передаю ActorRefs (restClientRouter
и publisher
) конструктору GeoInferenceActor
. Это хорошо или нет? Есть ли лучший способ сделать это?