Page History
...
FSM(Finite-state machine) 이라고도 불립니다을 지원하기위한 기능입니다.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//foo 라고하면 행복해졌다가, bar라고하면 화나는 ACTOR public class HotSwapActor : UntypedActor { private ILoggingAdapter log = Context.GetLogger(); //기본탑재 로그 using Akka.Event protected override void OnReceive(object message) { log.Info("NORMAL:"+message.ToString()); switch (message as string) { case "foo": log.Info("행복해짐"); Become(Happy); break; case "bar": log.Info("화남"); Become(Angry); break; } } private void Angry(object message) { log.Info("Angry:" + message.ToString()); switch (message as string) { case "foo": log.Info("행복해짐"); Become(Happy); break; case "bar": log.Info("이미 화가났다."); Sender.Tell("이미 화가났다."); break; } } private void Happy(object message) { log.Info("Happy:" + message.ToString()); switch (message as string) { case "foo": log.Info("이미 행복하다."); Sender.Tell("이미 행복하다."); break; case "bar": log.Info("화남"); Become(Angry); break; } } } |
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
protected void SomeTest3() //BecomeTest { IActorRef myActor = actorSystem.ActorOf<HotSwapActor>("myactor"); myActor.Tell("bar"); myActor.Tell("foo"); myActor.Tell("bar"); myActor.Tell("foo"); myActor.Tell("bar"); myActor.Tell("bar"); myActor.Tell("foo"); } |
Expand | ||
---|---|---|
| ||
[INFO][2017-09-05 오전 6:50:10][Thread 0005][[akka://ServiceA/user/myactor#16204 |
...