[Akka.NET] 액터 부모, 자식 메시지 주고 받기

소개

오늘은 액터에서 부모 액터, 자식 액터를 생성한 후 부모와 자식에게 서로 메시지를 주고 받는 방법에 대해서 알려 드리려고 합니다.

크게 어려운 부분이 아니기 때문에 바로 예제 코드를 통해서 보여 드리겠습니다.


예제 코드

using Akka.Actor;
using System;

namespace interfaceTest
{
    class Program
    {
        // 액터 시스템 생성
        static ActorSystem system = ActorSystem.Create("actorSystem");

        static void Main(string[] args)
        {
            // 부모 액터
            IActorRef parentActor = system.ActorOf(ParentActor.Props(), "parentActor");

            //ActorSystem 종료 대기
            system.WhenTerminated.Wait();
        }
    }

    public class ParentActor : ReceiveActor
    {
        public static Props Props()
        {
            return Akka.Actor.Props.Create(() => new ParentActor());
        }

        public ParentActor()
        {
            IActorRef childActor = Context.ActorOf(ChildActor.Props(), "childActor");

            //부모가 자식에게 메시지 보내기
            childActor.Tell("자식아, 부모다. 메시지 받아라.");

            Receive<string>(_ => Handle(_));
        }

        public void Handle(string message)
        {
            Console.WriteLine($"부모 액터 Re : {message}");
        }
    }

    public class ChildActor : ReceiveActor
    {
        public static Props Props()
        {
            return Akka.Actor.Props.Create(() => new ChildActor());
        }

        public ChildActor()
        {
            //부모에게 메시지 보내기
            Context.Parent.Tell("부모님, 자식된 도리로써 인사 드립니다.");

            Receive<string>(_ => Handle(_));
        }

        public void Handle(string message)
        {
            Console.WriteLine($"자식 액터 Re : {message}");
        }
    }
}

실행 결과

부모 액터 Re : 부모님, 자식된 도리로써 인사 드립니다.
자식 액터 Re : 자식아, 부모다. 메시지 받아라.
728x90

'C# > Akka(Actor)' 카테고리의 다른 글

[Akka.NET] 액터 메시지 받기  (0) 2022.01.15
[Akka.NET] 액터끼리 메시지 주고 받기  (1) 2022.01.12
[Akka.NET] 액터 메시지 보내기 - Tell  (1) 2022.01.12
[Akka.NET] 액터 생성하기  (1) 2022.01.11
Akka.Cluster 란?  (0) 2022.01.11

이 글을 공유하기

댓글

Designed by JB FACTORY