Dan*_*iel 0 erlang erlang-otp erlang-supervisor
在实施主管时..如果,在主管模块中,我做了类似的事情
init([_]) - >
{ok,
{{one_for_one,5,60},
[{reverese,{reverse,start_reverse,[]},permanent,brutal_kill,worker,[]}]}}.
而反向功能是:
start_reverse() - >
Pid = spawn(?MODULE,reverse,[]).
由于start_reverse函数在每种情况下都正常退出,因此无法工作.但是,当我添加这样一行时:
start_reverse() - >
Pid = spawn(?MODULE,reverse,[]),
{ok,Pid}.
即使功能正常退出,它也能正常工作.有人可以解释原因吗?
容易,
问题是supervisor需要一个特定的调用约定来支持进程的关闭和初始化.您的低级代码会spawn忽略该约定.你也应该
gen_server是最常见的.proc_libsupervisor_bridge否则,您的代码根本不会利用OTP.你想要它.
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |