2017-01-01 3 views
1

저는 시뮬레이션을 수행하는 액터가 있고 데이터를 다시 보냅니다. 나는 시뮬레이션을 여러 번 실행할 수 있기를 원하므로 각 액터의 내부 상태를 재설정해야합니다.Akka 액터를 초기 상태로 재설정합니다.

액터의 내부 상태를 리셋하여 내가 생성했을 때와 동일한 상태가되도록하려면 어떻게해야합니까?

+0

왜 '사용'하지 않습니까? 인터넷을 통해 많은 예제가 있습니다. – zella

답변

0

수동

reset와 같은라는 메시지 처리 재설정 수동으로 자신의 모든 액터 상태를 재 초기화 할 수있는 두 가지 방법이 있습니다.

다음은 재설정 문자열 메시지를 처리하고 액터의 상태를 재설정하는 코드 샘플입니다.

두 번째 방법을 다시

class FooActor extends Actor { 
    var maybeBars: Option[ActorRef] = _ 
    def receive = { 
    case "foo" => println("foo") 
    case "reset" => maybeBars = _ 
    } 
} 

자동 배우에 예외를 던지고 배우를 죽일 것입니다. 이 경우 akka 기본 수퍼바이저 전략은 초기 빈 상태로 액터를 다시 시작합니다.

class FooActor extends Actor { 
    var maybeBars: Option[ActorRef] = _ 
    def receive = { 
    case "foo" => println("foo") 
    case "reset" => throw new Exception("reset") 
    } 
} 

관련 문제