據我所知,監督進程可以監督Erlang/OTP行爲模型中的大量進程。監督Erlang/OTP監督行爲中的普通進程
該過程可以是gen_server
,gen_fsm,
和gen_event
。我的問題是,一個普通的進程是否可以通過Erlang/OTP中的主管進程來監督?我的意思是一個不是gen_server
,gen_fsm
或gen_event
的過程。
如果是這樣,過程規範將如何看起來像?下面我試過,但不起作用:
Spec = {Id, {my_module, my_function, [Par1, ..., ParN]}, permanent, 5000, worker, [my_module]}
我也試過這樣:
Spec = {Id, {my_module, my_function, [Par1, ..., ParN]}, permanent, 5000, worker, []}
但是,當我更換模塊和功能與gen_server
模塊,並從裏面的函數,這個效果很好。
我可以得出結論:監督員的子流程不能是一個普通流程嗎?
錯誤,我得到的是:
錯誤是如下:應用程序:退出MYAPP :{bad_return, {{myapp_app,啓動,[正常,[]}, { 'EXIT', { {badmatch, {錯誤, {關機, {failed_to_start_child,worker_1, {確定,狀態}}}}}, [{myapp_app,開始,如圖2所示, [{文件, 「SRC/myapp_app.erl」} ,{line,27}]}, {application_master,start_it_old,4, [{file,「a pplication_master.erl「},{線,272}]}]}}}}
你怎麼知道它不起作用? – legoscia
顯然,我跑了它,並得到錯誤。 – user3389168
你得到了什麼錯誤? – legoscia