Current section
Files
Jump to
Current section
Files
src/canal_sup.erl
-module(canal_sup).
-behaviour(supervisor).
-export([start_link/0]).
-export([init/1]).
-define(SERVER, ?MODULE).
%% public
-spec start_link() -> {ok, pid()} | {error, term()}.
start_link() ->
case supervisor:start_link({local, ?SERVER}, ?MODULE, []) of
{ok, _} = OK -> OK;
ignore -> {error, ignore};
{error, _} = E -> E
end.
%% callbacks
-spec init([]) -> {ok, {supervisor:sup_flags(), [supervisor:child_spec()]}}.
init([]) ->
Flags = #{
strategy => one_for_one,
intensity => 5,
period => 10
},
CanalServer = #{
id => canal,
modules => [canal],
restart => permanent,
shutdown => brutal_kill,
start => {canal, start_link, []},
type => worker
},
Children = [CanalServer],
{ok, {Flags, Children}}.