Versions Compared

Key

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

...

Akka Stream Flow 가 제공하는 기능들이며, 이것은 작업자가 직접 설계를 해야합니다.실시간 데이터가 버퍼에 넘치지 않도록 지속적으로 활동할수 있으며

저장탱크가 넘치지 않도록 개발자가 직접 설계에 반영해야합니다.  ( AKKA가 모든것을 책임지지는 않습니다.)

코드 흐름 - 사용

유닛테스트를 활용하여 위와같은 흐름을 어떻게 제어를 하는지 사용부를 먼저 알아 보겠습니다.

...

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>();

...