2012-11-19 2 views
0

프로세스를 구현하는 가장 일반적인 방법은 무엇입니까? 작업 만 수행하고 종료해야합니까?Erlang/OTP에서 임시 작업자를 구현하는 방법

내 경우이 근로자는 simple_one_for_one 감독자가 감독합니다. 나는 주위를 검색했지만, 단지 spawn_link보다 더 나은 아무것도 발견하지 않았습니다 :

work(Args) -> 
{ok, spawn_link(fun() -> 
    ... do_the_necessary_work ... 
end)}. 

그럼에도 불구하고,이 방법은 좋은 OTP 디자인 될 것 같지 않습니다를.

아이디어가 있으십니까?

+0

그래서 에라 글 구문 강조가 있습니까? – citxx

답변

4

실제로는 괜찮은 방법입니다. erlang:spawn_link(...) 대신 proc_lib:spawn_link(...) (감독 트리 탐색 및 상위 오류 로그에 대한 조상 저장)을 사용하고 있는지 확인하십시오.

물론 작업자가 실패 할 경우 수행 할 작업에 따라 temporary 또는 transient으로 설정된 모든 작업자에 대한 재시작 전략을 만들 수 있습니다 (작업자를 다시 시작하고 작업을 다시 시도하십시오). 또는 실패한 경우 작업을 폐기하십시오).

관련 문제