2017-01-05 13 views
0

안녕하세요 저는 라우터 전략을 구현하고 싶습니다. 일부 이벤트에서 라우터에 메시지를 보내지 만 라우터에 대한 참조를 얻는 방법을 모르겠습니다. 전략 구현 내부.Akka - router supervisorStrategy- 이벤트시 라우터에 메시지를 보내는 방법

이 내가 할 노력하고있어입니다 : 자기 라우터 ActorRef해야하지만, 자기가이 맥락에서 인식되지 않는

val router = system.actorOf(RoundRobinPool(5, supervisorStrategy = OneForOneStrategy(){ 
     case _: ActorKilledException => Escalate 
     case _: ActorInitializationException => Escalate 
     case _ => self ! SomeMsg(); Restart 
    }).props(Props(classOf[MyClass]))) 

.

답변

0
나는 일반적으로 라우터에 케이스를 생성하지

하지만 밖에서는 예를 들어 https://github.com/politrons/Akka

+0

나는 내 Akka 프로젝트를 볼 수 있습니다 여기에

def receive: PartialFunction[Any, Unit] = { case RunWorkersMsg => workerRouter ! WorkMsg(i , numberOfElements) case ResultMsg(value) => msgRouter ! WorkMsg() } 

내 배우 수신기 기능에 다음

val workerRouter: ActorRef = context.actorOf( Props[Worker].withRouter(RoundRobinPool(nrOfWorkers)), name = "workerRouter") val msgRouter: ActorRef = context.actorOf( Props[Worker].withRouter(RoundRobinPool(nrOfWorkers)), name = "msgRouter") 

내 프로젝트에 동일한 코드를 가진 x 액터가 있기 때문에 라우터를 갖고 싶습니다. 이제 라우트 중 하나가 종료 될 때 라우터에 메시지를 보내야합니다 (브로드 캐스트가 아니므로 기존 라우트 중 하나만받습니다). 예를 들어, 배우가 죽으면 그는 x-1 명의 현존 배우 중 한 명에게 실패했다고 통보 할 수 없습니다 –