2016-06-20 9 views
0

OTP를 사용하여 프로젝트의 좋은 예를 살펴보고 OTP를 배우려고합니다. mix에 대한 코드를 공부했습니다. 하지만 믹스가 OTP를 많이 사용하지 않는 것처럼 보입니다.믹스가 OTP를 많이 사용하지 않는 이유는 무엇입니까?

나에게있어 mix에는 OTP에 대한 많은 유용한 사례가 있습니다. 여러 파일을 동시에 컴파일하고, deps를 동시에 다운로드하는 등의 예가 있습니다.

OTP를 사용하지 않는 이유는 무엇입니까? 아니면 CLI 응용 프로그램의 OTP 잔인 함입니까? 장기 실행 응용 프로그램에만 의미가 있습니까?

나는 믹스가 일을 동시에 실행하지 않는다는 것을 알아 챘다. 이것도 이유가 있나?

+0

흥미로운 질문이지만, StackOverflow보다 메일 링리스트 또는 포럼에 더 적합하다고 보입니다. – CoderDennis

답변

3

나는 당신이 당신 자신의 질문에 대답했다고 생각합니다. 핵심 OTP 개념은 살아있는 명령을 짧게 만들 수 없습니다.

예를 들어 서버 연결과 같이 많은 독립적 인 작업이 있고 그 중 하나가 실패 할 경우 관리자가 계속 응용 프로그램을 실행해야 할 경우 관리자가 좋습니다. 혼합 작업의 경우, 작업이 실패하면 다시 시도해 보는 것이 좋지 않습니다. 오류 메시지를 인쇄하고 종료하십시오.

GenServers는 장기 실행 응용 프로그램에서도 상태를 유지하는 데 적합하지만 CLI 응용 프로그램에서는 모든 상태를 임시로 읽은 다음 사용하므로 함수 호출에 전달하는 것이 좋습니다.

그러나 믹스가 동시에 작업을 실행하지 않는다는 것은 사실이 아닙니다. htop을 실행하고 프로젝트를 컴파일하면 모든 코어가 활용됩니다. mix compile은 병렬 컴파일러를 사용하여 작업 속도를 높이고 훌륭하게 작동합니다. 컴파일 상태는 모든 프로세스가 동시에 액세스 할 수 있도록 GenServers 대신 ETS 테이블에 유지됩니다.

OTP는 오류 발생시에도 앱을 계속 실행하기위한 것으로, 혼합 된 경우에는 해당되지 않습니다. 오류를보고하기 전에 믹스를 시도하고 n 번 시도하기를 원하지 않을 것입니다.

OTP의 유용한 사용법을 보려면 ranch이 좋습니다.