Versions Compared

Key

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

...

Code Block
themeEmacs
title주요코드설명
// 빗물을 처리하는 액터(지정된 초마다,빗물을 모아서 전달)
var throttleActor = Sys.ActorOf(Props.Create(() => new ThrottleActor(timeSec)));
// 물을 생산하는 액터(물생산은 전달받는대로, 초당 5개씩만 처리,느리다 싶으면 Work를 더 늘려준다.)
var throttleWork = Sys.ActorOf(Props.Create(() => new ThrottleWork(elemntPerSec, timeSec)));

// 생산자와 소비자를 연결합니다
// DI가 사용이되지 않았으며,참조객체 디펀던시가 없습니다. 이것은 네트워크로 작업자가 분리될수 있음을 의미합니다.
throttleActor.Tell(new SetTarget(throttleWork));
throttleWork.Tell(new SetTarget(probe));

// 빗물을빗물은 불규칙적으로 쌓일수 있으나, 빗물작업자에게는 처리자에게어느정도 불규칙적으로모인 계속물이 보낼수 있습니다방류됩니다.
throttleActor.Tell(new Queue(/*Any "빗물" Object*/));

//고객은 작업자가 무엇을했는지 관심없습니다. 그냥 플리즈 워터(ExpectMsg)했을때, 지정된 시간에 물을 받으면 됩니다.
probe.ExpectMsg<DelayMsg>();

...