문제

Joe Armstrong의 책을 읽고 Kevin Smith Screencasts를 보았을 때 단일 Gen_Server와 단일 감독자로 구성된 간단한 OTP 응용 프로그램을 구축했습니다.

이제 Mochiweb을보고 New_Mochiweb.erl 스크립트를 사용하여 샘플 프로젝트 [Helloworld]를 만들었습니다. 소스 코드 탐색 소스 코드 브라우징 내 샘플 OTP 앱과 다르지 않다는 것을 알 수 있습니다 [OTP 응용 프로그램이 있습니다. 감독자가 있습니다.] 표준 Erlang 모듈입니다.

Gen_Server를 사용하는 것이 OTP 응용 프로그램 구성 요소를 구축 할 때 권장되는 방법이라는 인상을 받았습니다. Mochiweb은 왜 OTP 응용 프로그램 및 감독자 행동을 사용하지만 Gen_Server를 피할 수 있습니까?

도움이 되었습니까?

해결책

mochiweb_socket_server라는 gen_server가 있습니다. 생성 된 모듈은 들어오는 요청을받을 때 Gen_Server를 호출 할 수있는 "콜백 모듈"일뿐입니다.

다른 팁

재시작 전략하에있는 프로세스에 OTP/Gen_Servers를 사용합니다. 그것이 당신의 통제에 있습니다..

웹 브라우저에 대한 연결을 나타내는 프로세스의 경우에는 그렇지 않습니다. 해당 프로세스가 죽으면 서버가 다시 시작할 수있는 방법이 없습니다. 따라서 OTP에서 실행하는 것은 무의미합니다.

Mochiweb (및 Yaws)는 모두 gen_servers를 사용하여 청취 포트에 바인딩 한 다음 새 연결을 처리하기 위해 감독되지 않은 프로세스를 생성합니다.

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