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 |