두 명의 하위 프로세스를 모니터링하는 감독자 프로세스가 있습니다. 기본 프로세스 및 백업 프로세스 (기본 프로세스가 종료되는 경우)얼랑 감독관 - 공유 프로세스 사서함
메시지가 사서함에 남아있는 동안 주 프로세스가 다운되면 백업 프로세스가 인계 받아 원래의 주 프로세스 사서함에 남겨진 메시지를 처리 할 수있는 방법이 있습니까?
두 명의 하위 프로세스를 모니터링하는 감독자 프로세스가 있습니다. 기본 프로세스 및 백업 프로세스 (기본 프로세스가 종료되는 경우)얼랑 감독관 - 공유 프로세스 사서함
메시지가 사서함에 남아있는 동안 주 프로세스가 다운되면 백업 프로세스가 인계 받아 원래의 주 프로세스 사서함에 남겨진 메시지를 처리 할 수있는 방법이 있습니까?
노드 대신 프로세스를 의미하고 모든 수신 메시지가 처리되는지 확인하려는 경우 기본 프로세스 또는 백업 프로세스 중 하나를 사용하여 들어오는 메시지를 Mnesia 테이블에 직접 저장하는 것이 가장 좋습니다. 이렇게하면 백업 프로세스에서 계속 처리 할 수 있습니다.
그렇다면 문제는 OTP가 자동으로 처리 할 수 있다고 생각합니다. 백업 프로세스를 생성 할 필요가 없습니다. 추락 한 경우 동일한 gen_server를 다시 스폰하도록 감독자에게 지시 할 수 있습니다.
내가 일반적으로 그런 상황에서 수행하는 것은 들어오는 메시지를 ets 테이블로 푸시하는 것입니다. 이것에 약간의 미묘가있다. 더 논의 된 here
노드 또는 프로세스? 그것들은 Erlang 세계에서 두 가지 다른 개념입니다. –