Page History
Info |
---|
UntypedActor는, 이전 섹션에서 익힌 ReceiveActor 처럼 생성자에서 Type매칭에의해 메시지 처리기를 등록하는게 아닌 , 기본 처리 메스드를 재정의하여 기본 메시지 처리외에 커스텀한 기능을 부여할수 있습니다부여할시 사용됩니다. 이번장에서는 Actor의 기능을 확장하여 유용한 몇가지 기능들을 살펴보겠습니다. |
...
OnReceive - 기본 메시지 처리 재정의
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
public class MyActorSame : UntypedActor { protected override void OnReceive(object message) { if(message is string) { if (message as string == "createChild") { Context.ActorOf<MyActor>("myChild"); Sender.Tell("Create Child Succed:myChild"); } else { Sender.Tell("RE:" + message); } } else if(message is SomeMessage) { Sender.Tell("RE:" + (message as SomeMessage).message ); } } } |
...
메시지수신부 OnReceive 를 직접 Override해서 사용하는것 외에는 차이가 없습니다없으며
아래에 설명된 확장 기능들은 모두 ReceveActor에서도 사용가능합니다.
Become/Unbecome
...
사용목적 : 메시지 처리기가 어떠한 상태에따라 다른 메시지 처리기가 필요하다고 가정합시다.
...
다른액터로 받은 메시지를 전달할때 사용합니다. 이것은 라우터,로드밸런스,복제 등에서 유용하게 쓰입니다.
액터종료방법
...
PoisonPill
No Format |
---|
myActor.Tell(PoisonPill.Instance, Sender); |
메시지를 통해 액터를 멈추고자 할때 이용됩니다. 일반적이고 안정적입니다.
Killing
안전한 액터 종료(Graceful Stop)
...
관리자 액터가 , 어떠한 액터를 감시하고있고, 모두 안전하게 종료후 자기자신도 마지막에
...