REST 호출을 통해 데이터를 수신하기 위해 phoenix 컨트롤러를 사용하고 있습니다. 따라서 iOS 앱은 각 사용자에 대한 "이벤트"를 보낼 수 있으며 이벤트를 기반으로 점수 / 점을 계산하여 사용자에게 다시 보내야합니다. 계산 및 사용자에게 다시 전송은 비동기 적으로 발생할 수 있습니다. Firebase를 사용하여 사용자와 다시 통신하고 있습니다.
계산을하기에 좋은 패턴은 무엇입니까? Calculate는 해당 이벤트의 점수를 결정하기위한 데이터베이스 쿼리 모음 일 수 있습니다. 이 계산은 어디에서 발생합니까? 백그라운드 작업자, GenEvent, 사용자 별 GenServer 내의 스트림 (사용자별로 GenServer를 감독했습니다).
나는 Phoenix 채널 , 작업 및 GenServer를 살펴볼 것 입니다.
또한 GenServer 작업자 풀을 관리하여 계산을 수행하고 결과를 다시 보내려면 Conqueuer를 확인하십시오 . 이 라이브러리를 작성했으며 회사의 프로덕션 시스템에서 사용 중입니다. 그것은 아마도 Erlang / Elixir에서 가장 널리 퍼진 풀 관리 라이브러리 인 poolboy 를 사용합니다 .
물론 시스템의 요구 사항을 완전히 이해하지는 못했지만 GenEvent
요구 사항에 자리 가없는 것 같습니다 . GenEvent
하나 이상의 이벤트 소비자에게 이벤트를 배포하는 것입니다. 따라서 시스템의 다른 부분에서 발생하는 이벤트를 구독해야하는 프로세스 그래프가 없으면 해당 역할을 볼 수 없습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다