Erlang의 이벤트 관리자 프로세스. 명명 된 프로세스 또는 PID?

StackOverflow https://stackoverflow.com/questions/1626602

  •  06-07-2019
  •  | 
  •  

문제

구독자에게 이벤트를 발송하는 이벤트 관리자 프로세스가 있습니다 (예 : http_session_created, http_sesssion_destroyed). PID가 명명 된 프로세스 대신 사용되는 경우 이벤트 관리자와 함께 작동하기 위해 기능에 넣어야하지만 이름이 지정된 프로세스가 사용되면 코드가 더 명확 해집니다.

어떤 변형이 맞습니까?

고맙습니다!

도움이 되었습니까?

해결책

프로세스 명명 프로세스에는 프로세스에 대한 실제 차이가 없지만 등록하면 전 세계적으로 만듭니다. 본질적으로 당신은 여기에 시스템에 누구나 사용할 수있는 글로벌 서비스가 있다고 말하고 있습니다.

당신의 설명에서 그것은 당신이 그들에게 당신의 루프에서 그들을 운반하려는 작은 노력을 저장하기 위해 이름을주는 것처럼 더 많이 들립니다. 이 경우 PID를 다른 모든 상태 데이터와 함께 레코드에 넣을 것입니다. 이는 프로세스의 유형을 훨씬 더 잘 나타냅니다.

다른 팁

고정 된 "가입자"프로세스 세트가있는 경우 등록 된 이름 IMO를 사용하십시오.

반대로, 가입자가오고가는 곳에 게시/구독 종류의 아키텍처가 있다면,이를 추적하기위한 인프라가 필요 하며이 시점에서 PID () 또는 이름을 사용하는 경우에는 중요하지 않습니다.

등록 된 이름을 사용하는 단점 중 하나는 "충돌"을 피하기 위해 코드 기반에서 추적해야한다는 것입니다. 그래서 그것은 당신에게 달려 있습니다 : 개인적으로, 나는 당신이 말하는 것처럼, 그것이 코드를 더 명확하게 만드는 것처럼 명명 된 프로세스를 선호하는 경향이 있습니다. 어떤 식 으로든 OTP는 신경 쓰지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top