복붙노트

[SCALA] Akka 킬 대를 중지 대 포이즌 필?

SCALA

Akka 킬 대를 중지 대 포이즌 필?

Akka의 신참 질문은 - 내가 Akka 필수을 통해 읽고 있어요, 누군가가 Akka 정지 / 킬 대 포이즌 필의 차이를 설명해주십시오 수 있을까? 이 책 제공 단지 작은 explaination "킬 동기 대비 독 알약 비동기입니다." 그러나 어떤 방법으로? 이 시간 동안 호출 배우 스레드 잠금을합니까? 아이들의 배우들이 죽시 통보, 사후 정지 등 envoked? 예 다른 대 한 개념의 사용?

많은 감사합니다!

해결법

  1. ==============================

    1.모두 정지 및 PoisonPill는 배우를 종료하고 메시지 큐를 중지합니다. 그들은 배우, 메시지 처리를 중단 모든 아이들에게 정지 콜을 보내 그들을 종료를 들어, 다음의 postStop 후크를 호출 대기하게됩니다. 모든 추가 메시지는 죽은 문자 사서함으로 전송됩니다.

    모두 정지 및 PoisonPill는 배우를 종료하고 메시지 큐를 중지합니다. 그들은 배우, 메시지 처리를 중단 모든 아이들에게 정지 콜을 보내 그들을 종료를 들어, 다음의 postStop 후크를 호출 대기하게됩니다. 모든 추가 메시지는 죽은 문자 사서함으로 전송됩니다.

    차이는이 시퀀스를 시작하기 전에하는 메시지가 처리 얻을 것이다. 다른 모든 폐기와 정지 콜의 경우, 현재 처리되고있는 메시지가 먼저 완료된다. PoisonPill를 보낼 때 PoisonPill 수신하면 시퀀스가 ​​시작한다 그래서, 이것은 단순히 큐에있는 다른 메시지이다. 대기열에 앞서 그것의 모든 메시지가 먼저 처리한다.

    대조적으로, 연속 메시지는 정상 감독자기구를 이용하여 처리 누가 받 ActorKilledException 던져 액터시킨다. 그래서 여기 행동은 당신이 당신의 상사 전략에 정의했는지에 따라 달라집니다. 기본값은 배우를 중지하는 것입니다. 그러나 사서함이 지속, 배우가 다시 시작 여전히 실패의 원인이되는 일을 제외하고는 이전 메시지를 가지게됩니다 때.

    또한 문서 섹션 '은 배우를 죽이는', '배우 중지'을 참조하십시오 :

    http://doc.akka.io/docs/akka/snapshot/scala/actors.html

    그리고 감독의 전략에 대한 자세한 :

    http://doc.akka.io/docs/akka/snapshot/scala/fault-tolerance.html

  2. ==============================

    2.사용 PoisonPill 때마다 수 있습니다. 이 사서함에 넣어 및 다른 메시지처럼 소비된다. 또한 배우 내에서 "context.stop (자기)"을 사용할 수 있습니다.

    사용 PoisonPill 때마다 수 있습니다. 이 사서함에 넣어 및 다른 메시지처럼 소비된다. 또한 배우 내에서 "context.stop (자기)"을 사용할 수 있습니다.

  3. ==============================

    3.그 전에 PoisonPill에, 메일 박스에 수신 된 모든 메시지와 함께 끝났다 후 PoisonPill 비동기 배우를 중지합니다.

    그 전에 PoisonPill에, 메일 박스에 수신 된 모든 메시지와 함께 끝났다 후 PoisonPill 비동기 배우를 중지합니다.

  4. from https://stackoverflow.com/questions/13847963/akka-kill-vs-stop-vs-poison-pill by cc-by-sa and MIT license