You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Actor API중 Become/Unbecome으로 간단한 상태변환 액터 설계가가능하지만

조금더 복잡한 상태머신을 설계한다고 했을시 AbstatractFSM 객체 활용이 가능합니다.

이것은 언랭에서 만든 디자인 컨셉에서 영향을 받았습니다.

http://erlang.org/documentation/doc-4.8.2/doc/design_principles/fsm.html



배치잡 상태머신설계

배치 처리기를 다음과 같이 설계한다고 가정해봅시다.

  • 메시지를 일정량 모아뒀다가 내가 원하는 타이밍에 모아서 처리하고 싶다.
  • 특정시간이 지나면, 모은량과 상관없이 자동으로 처리하고 싶다.


메시지가 불규칙적으로 생산된다고 가정하고, 메시지발생시마다 매번 DBwrite를 수행한다고 하면

DB의 성능저하를 일으키는 요소가될것입니다. 

1초란 시간은 네트워크에서 아주긴 시간입니다. 초당 100메시지 전송이 가능하다고 하면

어떠한 처리 함수를 100번호출하는것보다. 1번호출로 100개의데이터를 묶어서 처리하는것이 대부분 유용합니다.


배치 상태설계를 정의하면 다음과 같습니다.

  • 상태값은 대기와 활동상태 두개를 가진다.
  • 특정 시간이 지나면 활동상태로 깨어난다.
  • 메시지는 항상 큐에 적재가 되며 활동상태일때 처리를 합니다.
  • 필요하면 임의로 큐를 비워서 배치처리가 되도록합니다.







  • No labels