프로그래밍/Akka.Net

[Akka.NET] Receive()와 ReceiveAny()

Victory_HA 2023. 5. 30. 09:13

Akka.NET - Receive()

  • Receive() 메서드는 알려진 메시지 유형에 대한 특정 메시지 처리기를 정의하는 데 사용됩니다.
  • 특정 메시지 유형과 일치하는 일련의 case 문을 제공하고 각 사례에 해당하는 작업 또는 동작을 지정합니다.
  • 메시지가 수신되면 Akka.NET은 메시지 유형을 정의된 사례와 일치시키고 적절한 핸들러를 호출합니다.

  • 이 예제에서 액터에는 Receive()를 사용하여 정의된 세 가지 특정 메시지 핸들러가 있습니다.
  • 특정 유형의 메시지가 수신되면 해당 핸들러가 호출됩니다.

Receive() 샘플코드

Receive<string>(message =>
{
    // Handle string messages
});

Receive<int>(message =>
{
    // Handle int messages
});

Receive<CustomMessage>(message =>
{
    // Handle CustomMessage messages
});

Akka.NET - ReceiveAny()

  • ReceiveAny() 메서드는 모든 유형의 메시지와 일치하는 포괄 메시지 처리기를 정의하는 데 사용됩니다.
  • 알 수 없는 유형의 메시지를 처리하거나 일치하는 특정 메시지 핸들러가 없을 때 폴백 동작을 제공할 수 있습니다.
  • ReceiveAny() 핸들러는 수신된 메시지와 일치하는 다른 핸들러가 없을 때 호출됩니다.

  • 이 예제에서 액터에는 Receive()를 사용하여 정의된 특정 메시지 핸들러가 있지만,
  • 인식할 수 없는 유형의 메시지가 수신되면 ReceiveAny() 핸들러가 호출됩니다.

ReceiveAny() 샘플코드

Receive<string>(message =>
{
    // Handle string messages
});

Receive<int>(message =>
{
    // Handle int messages
});

ReceiveAny(message =>
{
    // Handle all other types of messages
});

정리

  • Receive()는 알려진 유형에 대한 특정 메시지 핸들러를 정의하는 데 사용되는 반면,
  • ReceiveAny()는 다음과 같은 다른 모든 유형의 메시지에 대한 범용 핸들러를 정의하는 데 사용된다는 것입니다.

'프로그래밍 > Akka.Net' 카테고리의 다른 글

[Akka.NET] Akka.NET 가이드  (0) 2023.08.18
[Akka.NET] Stash  (0) 2023.05.30
[Akka.NET] Akka.NET Blog Archieve  (0) 2023.05.30
[Akka.Net] MailBox  (0) 2022.06.09
[Akka.Net] Props 이용한 Actor 생성  (0) 2022.06.06