Page History
...
Akka Stream Flow 가 제공하는 기능들이며, 이것은 작업자가 직접 설계를 해야합니다.실시간 데이터가 버퍼에 넘치지 않도록 지속적으로 활동할수 있으며
저장탱크가 넘치지 않도록 개발자가 직접 설계에 반영해야합니다. ( AKKA가 모든것을 책임지지는 않습니다.)
코드 흐름 - 사용
유닛테스트를 활용하여 위와같은 흐름을 어떻게 제어를 하는지 사용부를 먼저 알아 보겠습니다.
...
Code Block | ||||
---|---|---|---|---|
| ||||
// 빗물을 처리하는 액터(지정된 초마다,빗물을 모아서 전달) 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>(); |
...
- 05. Streams
- https://getakka.net/articles/streams/introduction.html
- https://alpakka.getakka.net/documentation/index.html