Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagec#
titleActor 설계 코드
public class MyActor: ReceiveActor
{
  private readonly ILoggingAdapter log = Context.GetLogger();
  private int state =0;

  public MyActor()
  {
    Receive<string>(message => {
      log.Info("Received String message: {0}", message);
      Sender.Tell(state );
    });
    Receive<SomeMessage>(message => {...});
  }
}



var remoteActor = system.ActorSelection("akka.tcp://MyServer@127.0.0.1:8001/user/someActor"); //코드변경없이 옵션으로 로컬,원격,클러스터등의 선택 전략이 가능하다.
var state = remoteActor.Ask("Hello").Result; // 질의를 하던지?(Ask), 단지 말만한다던지?(Tell), 기다리던지? 할수가Result 있다. 이것이 단순한공통적인 인터페이스이며 객체접근에서 조금더 추상화된 모델이다.


Actor는 오로지 메시만 주고 받으며 동시성을 달성하며,  결과값을 얻기위해서는 객체접근이아닌 질의를 해야한다.

...