0
내가 simple_one_for_one 관리자를 테스트하는 코드를 작성 시작할 수 있지만, 그것이 작동하지 수, 코드는 다음과 같습니다simple_one_for_one 아이가
-module(test_simple_one_for_one).
-behaviour(supervisor).
%% API
-export([start_link/0, start_fun_test/0]).
%% Supervisor callbacks
-export([init/1]).
-define(SERVER, ?MODULE).
%%--------------------------------------------------------------------
start_link() ->
{ok, Pid} = supervisor:start_link({local, ?SERVER}, ?MODULE, []).
start_fun_test() ->
supervisor:start_child(test_simple_one_for_one, []).
init([]) ->
RestartStrategy = simple_one_for_one,
MaxRestarts = 1000,
MaxSecondsBetweenRestarts = 3600,
SupFlags = {RestartStrategy, MaxRestarts, MaxSecondsBetweenRestarts},
Restart = permanent,
Shutdown = 2000,
Type = worker,
AChild = {fun_test_sup, {fun_test, run, []},
Restart, Shutdown, Type, [fun_test]},
io:format("start supervisor------ ~n"),
{ok, {SupFlags, [AChild]}}.
내가
test_simple_one_for_one:start_link().
및
을 실행하면test_simple_one_for_one:start_fun_test().
erl 쉘에서 오류가 발생합니다.
코드가 잘 보이고 start_link와 start_fun_test가 호출 될 때 완벽하게 작동합니다. 이 오류는 start_link 전에 start_fun_test를 실행한다고 알립니다. – KrHubert