dding service -> worker template
This commit is contained in:
parent
55e3ac871f
commit
378a30e112
@ -1 +1 @@
|
|||||||
0.11.6
|
0.11.7
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{application,zx,
|
{application,zx,
|
||||||
[{description,"An Erlang development tool and Zomp user client"},
|
[{description,"An Erlang development tool and Zomp user client"},
|
||||||
{vsn,"0.11.6"},
|
{vsn,"0.11.7"},
|
||||||
{applications,[stdlib,kernel]},
|
{applications,[stdlib,kernel]},
|
||||||
{modules,[zx,zx_auth,zx_conn,zx_conn_sup,zx_daemon,zx_key,
|
{modules,[zx,zx_auth,zx_conn,zx_conn_sup,zx_daemon,zx_key,
|
||||||
zx_lib,zx_local,zx_net,zx_peer,zx_peer_man,
|
zx_lib,zx_local,zx_net,zx_peer,zx_peer_man,
|
||||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@ -24,7 +24,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx).
|
-module(zx).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-behavior(application).
|
-behavior(application).
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
@ -9,7 +9,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_auth).
|
-module(zx_auth).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -7,7 +7,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_conn).
|
-module(zx_conn).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -5,7 +5,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_conn_sup).
|
-module(zx_conn_sup).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-behavior(supervisor).
|
-behavior(supervisor).
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
@ -138,7 +138,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_daemon).
|
-module(zx_daemon).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-behavior(gen_server).
|
-behavior(gen_server).
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
@ -8,7 +8,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_key).
|
-module(zx_key).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -10,7 +10,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_lib).
|
-module(zx_lib).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -6,7 +6,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_local).
|
-module(zx_local).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -5,7 +5,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_net).
|
-module(zx_net).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -8,7 +8,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_peer).
|
-module(zx_peer).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -9,7 +9,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_peer_man).
|
-module(zx_peer_man).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-behavior(gen_server).
|
-behavior(gen_server).
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
@ -6,7 +6,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_peer_sup).
|
-module(zx_peer_sup).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-behaviour(supervisor).
|
-behaviour(supervisor).
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
@ -10,7 +10,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_peers).
|
-module(zx_peers).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-behavior(supervisor).
|
-behavior(supervisor).
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
@ -5,7 +5,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_proxy).
|
-module(zx_proxy).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -5,7 +5,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_sup).
|
-module(zx_sup).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-behavior(supervisor).
|
-behavior(supervisor).
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
@ -6,7 +6,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_tty).
|
-module(zx_tty).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -5,7 +5,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_userconf).
|
-module(zx_userconf).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -7,7 +7,7 @@
|
|||||||
%%% @end
|
%%% @end
|
||||||
|
|
||||||
-module(zx_zsp).
|
-module(zx_zsp).
|
||||||
-vsn("0.11.6").
|
-vsn("0.11.7").
|
||||||
-author("Craig Everett <zxq9@zxq9.com>").
|
-author("Craig Everett <zxq9@zxq9.com>").
|
||||||
-copyright("Craig Everett <zxq9@zxq9.com>").
|
-copyright("Craig Everett <zxq9@zxq9.com>").
|
||||||
-license("GPL-3.0").
|
-license("GPL-3.0").
|
||||||
@ -243,7 +243,7 @@ do_ignore(State = #s{listener = none}) ->
|
|||||||
State;
|
State;
|
||||||
do_ignore(State = #s{listener = Listener}) ->
|
do_ignore(State = #s{listener = Listener}) ->
|
||||||
ok = gen_tcp:close(Listener),
|
ok = gen_tcp:close(Listener),
|
||||||
State#s{listener = none}.
|
State#s{port_num = none, listener = none}.
|
||||||
|
|
||||||
|
|
||||||
-spec do_enroll(Pid, State) -> NewState
|
-spec do_enroll(Pid, State) -> NewState
|
||||||
@ -35,9 +35,9 @@
|
|||||||
| {shutdown, term()}
|
| {shutdown, term()}
|
||||||
| term().
|
| term().
|
||||||
%% @private
|
%% @private
|
||||||
%% Spawns the first listener at the request of the 〘*PREFIX*〙_client_man when es:listen/1
|
%% Spawns the first listener at the request of the 〘*PREFIX*〙_client_man when
|
||||||
%% is called, or the next listener at the request of the currently listening 〘*PREFIX*〙_client
|
%% 〘*APP MOD*〙:listen/1 is called, or the next listener at the request of the
|
||||||
%% when a connection is made.
|
%% currently listening 〘*PREFIX*〙_client when a connection is made.
|
||||||
%%
|
%%
|
||||||
%% Error conditions, supervision strategies and other important issues are
|
%% Error conditions, supervision strategies and other important issues are
|
||||||
%% explained in the supervisor module docs:
|
%% explained in the supervisor module docs:
|
||||||
@ -32,17 +32,17 @@ start_link() ->
|
|||||||
|
|
||||||
init(none) ->
|
init(none) ->
|
||||||
RestartStrategy = {rest_for_one, 1, 60},
|
RestartStrategy = {rest_for_one, 1, 60},
|
||||||
ClientSup = {〘*PREFIX*〙_client_sup,
|
|
||||||
{〘*PREFIX*〙_client_sup, start_link, []},
|
|
||||||
permanent,
|
|
||||||
5000,
|
|
||||||
supervisor,
|
|
||||||
[〘*PREFIX*〙_client_sup]},
|
|
||||||
ClientMan = {〘*PREFIX*〙_client_man,
|
ClientMan = {〘*PREFIX*〙_client_man,
|
||||||
{〘*PREFIX*〙_client_man, start_link, []},
|
{〘*PREFIX*〙_client_man, start_link, []},
|
||||||
permanent,
|
permanent,
|
||||||
5000,
|
5000,
|
||||||
worker,
|
worker,
|
||||||
[〘*PREFIX*〙_client_man]},
|
[〘*PREFIX*〙_client_man]},
|
||||||
|
ClientSup = {〘*PREFIX*〙_client_sup,
|
||||||
|
{〘*PREFIX*〙_client_sup, start_link, []},
|
||||||
|
permanent,
|
||||||
|
5000,
|
||||||
|
supervisor,
|
||||||
|
[〘*PREFIX*〙_client_sup]},
|
||||||
Children = [ClientSup, ClientMan],
|
Children = [ClientSup, ClientMan],
|
||||||
{ok, {RestartStrategy, Children}}.
|
{ok, {RestartStrategy, Children}}.
|
||||||
73
zomp/lib/otpr/zx/0.11.7/templates/service_worker/worker.erl
Normal file
73
zomp/lib/otpr/zx/0.11.7/templates/service_worker/worker.erl
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
%%% @doc
|
||||||
|
%%% 〘*PROJECT NAME*〙: 〘*CAP SERVICE*〙 Worker
|
||||||
|
%%% @end
|
||||||
|
|
||||||
|
-module(〘*PREFIX*〙_〘*SERVICE*〙).
|
||||||
|
-vsn("〘*VERSION*〙").
|
||||||
|
-behavior(gen_server).
|
||||||
|
〘*AUTHOR*〙
|
||||||
|
〘*COPYRIGHT*〙
|
||||||
|
〘*LICENSE*〙
|
||||||
|
|
||||||
|
%% gen_server
|
||||||
|
-export([start_link/0]).
|
||||||
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
||||||
|
code_change/3, terminate/2]).
|
||||||
|
-include("$zx_include/zx_logger.hrl").
|
||||||
|
|
||||||
|
|
||||||
|
%%% Type and Record Definitions
|
||||||
|
|
||||||
|
|
||||||
|
-record(s,
|
||||||
|
{}).
|
||||||
|
|
||||||
|
|
||||||
|
-type state() :: #s{}.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%% Interface
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%% gen_server
|
||||||
|
|
||||||
|
-spec start_link() -> Result
|
||||||
|
when Result :: {ok, pid()}
|
||||||
|
| {error, Reason :: term()}.
|
||||||
|
|
||||||
|
start_link() ->
|
||||||
|
gen_server:start_link({local, ?MODULE}, ?MODULE, none, []).
|
||||||
|
|
||||||
|
|
||||||
|
init(none) ->
|
||||||
|
State = #s{},
|
||||||
|
{ok, State}.
|
||||||
|
|
||||||
|
|
||||||
|
handle_call(Unexpected, From, State) ->
|
||||||
|
ok = log(warning, "Unexpected call from ~tp: ~tp", [From, Unexpected]),
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
|
||||||
|
handle_cast(Unexpected, State) ->
|
||||||
|
ok = log(warning, "Unexpected cast: ~tp", [Unexpected]),
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
|
||||||
|
handle_info(Unexpected, State) ->
|
||||||
|
ok = log(warning, "Unexpected info: ~tp", [Unexpected]),
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
|
||||||
|
code_change(_, State, _) ->
|
||||||
|
{ok, State}.
|
||||||
|
|
||||||
|
|
||||||
|
terminate(_, _) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%% Doer Functions
|
||||||
119
zomp/lib/otpr/zx/0.11.7/templates/service_worker/worker_man.erl
Normal file
119
zomp/lib/otpr/zx/0.11.7/templates/service_worker/worker_man.erl
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
%%% @doc
|
||||||
|
%%% 〘*PROJECT NAME*〙: 〘*CAP SERVICE*〙 Worker Manager
|
||||||
|
%%% @end
|
||||||
|
|
||||||
|
-module(〘*PREFIX*〙_〘*SERVICE*〙_man).
|
||||||
|
-vsn("〘*VERSION*〙").
|
||||||
|
-behavior(gen_server).
|
||||||
|
〘*AUTHOR*〙
|
||||||
|
〘*COPYRIGHT*〙
|
||||||
|
〘*LICENSE*〙
|
||||||
|
|
||||||
|
%% Worker interface
|
||||||
|
-export([enroll/0]).
|
||||||
|
%% gen_server
|
||||||
|
-export([start_link/0]).
|
||||||
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
||||||
|
code_change/3, terminate/2]).
|
||||||
|
-include("$zx_include/zx_logger.hrl").
|
||||||
|
|
||||||
|
|
||||||
|
%%% Type and Record Definitions
|
||||||
|
|
||||||
|
|
||||||
|
-record(s,
|
||||||
|
{〘*SERVICE*〙s = [] :: [pid()]}).
|
||||||
|
|
||||||
|
|
||||||
|
-type state() :: #s{}.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%% Service Interface
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%% Worker Interface
|
||||||
|
|
||||||
|
-spec enroll() -> ok.
|
||||||
|
%% @doc
|
||||||
|
%% Workers register here after they initialize.
|
||||||
|
|
||||||
|
enroll() ->
|
||||||
|
gen_server:cast(?MODULE, {enroll, self()}).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%% gen_server
|
||||||
|
|
||||||
|
-spec start_link() -> Result
|
||||||
|
when Result :: {ok, pid()}
|
||||||
|
| {error, Reason :: term()}.
|
||||||
|
|
||||||
|
start_link() ->
|
||||||
|
gen_server:start_link({local, ?MODULE}, ?MODULE, none, []).
|
||||||
|
|
||||||
|
|
||||||
|
init(none) ->
|
||||||
|
State = #s{},
|
||||||
|
{ok, State}.
|
||||||
|
|
||||||
|
|
||||||
|
handle_call(Unexpected, From, State) ->
|
||||||
|
ok = log(warning, "Unexpected call from ~tp: ~tp", [From, Unexpected]),
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
|
||||||
|
handle_cast({enroll, PID}, State) ->
|
||||||
|
NewState = do_enroll(PID, State),
|
||||||
|
{noreply, NewState};
|
||||||
|
handle_cast(Unexpected, State) ->
|
||||||
|
ok = log(warning, "Unexpected cast: ~tp", [Unexpected]),
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
|
||||||
|
handle_info({'DOWN', Mon, process, PID, Reason}, State) ->
|
||||||
|
NewState = handle_down(Mon, PID, Reason, State),
|
||||||
|
{noreply, NewState};
|
||||||
|
handle_info(Unexpected, State) ->
|
||||||
|
ok = log(warning, "Unexpected info: ~tp", [Unexpected]),
|
||||||
|
{noreply, State}.
|
||||||
|
|
||||||
|
|
||||||
|
handle_down(Mon, PID, Reason, State = #s{clients = Clients}) ->
|
||||||
|
case lists:member(PID, Clients) of
|
||||||
|
true ->
|
||||||
|
NewClients = lists:delete(PID, Clients),
|
||||||
|
State#s{clients = NewClients};
|
||||||
|
false ->
|
||||||
|
Unexpected = {'DOWN', Mon, process, PID, Reason},
|
||||||
|
ok = log(warning, "Unexpected info: ~tp", [Unexpected]),
|
||||||
|
State
|
||||||
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
code_change(_, State, _) ->
|
||||||
|
{ok, State}.
|
||||||
|
|
||||||
|
|
||||||
|
terminate(_, _) ->
|
||||||
|
ok.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%% Doer Functions
|
||||||
|
|
||||||
|
-spec do_enroll(PID, State) -> NewState
|
||||||
|
when PID :: pid(),
|
||||||
|
State :: state(),
|
||||||
|
NewState :: state().
|
||||||
|
|
||||||
|
do_enroll(PID, State = #s{〘*SERVICE*〙s = 〘*CAP SERVICE*〙s}) ->
|
||||||
|
case lists:member(PID, 〘*CAP SERVICE*〙s) of
|
||||||
|
false ->
|
||||||
|
Mon = monitor(process, PID),
|
||||||
|
ok = log(info, "Enroll: ~tp @ ~tp", [PID, Mon]),
|
||||||
|
State#s{〘*SERVICE*〙s = [PID | 〘*CAP SERVICE*〙s]};
|
||||||
|
true ->
|
||||||
|
State
|
||||||
|
end.
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
%%% @doc
|
||||||
|
%%% 〘*PROJECT NAME*〙 : 〘*CAP SERVICE*〙 Worker Supervisor
|
||||||
|
%%% @end
|
||||||
|
|
||||||
|
-module(〘*PREFIX*〙_〘*SERVICE*〙_sup).
|
||||||
|
-vsn("〘*VERSION*〙").
|
||||||
|
-behaviour(supervisor).
|
||||||
|
〘*AUTHOR*〙
|
||||||
|
〘*COPYRIGHT*〙
|
||||||
|
〘*LICENSE*〙
|
||||||
|
|
||||||
|
|
||||||
|
-export([start_acceptor/1]).
|
||||||
|
-export([start_link/0]).
|
||||||
|
-export([init/1]).
|
||||||
|
|
||||||
|
|
||||||
|
-spec start_acceptor(ListenSocket) -> Result
|
||||||
|
when ListenSocket :: gen_tcp:socket(),
|
||||||
|
Result :: {ok, pid()}
|
||||||
|
| {error, Reason},
|
||||||
|
Reason :: {already_started, pid()}
|
||||||
|
| {shutdown, term()}
|
||||||
|
| term().
|
||||||
|
|
||||||
|
start_acceptor(ListenSocket) ->
|
||||||
|
supervisor:start_child(?MODULE, [ListenSocket]).
|
||||||
|
|
||||||
|
|
||||||
|
-spec start_link() -> {ok, pid()}.
|
||||||
|
|
||||||
|
start_link() ->
|
||||||
|
supervisor:start_link({local, ?MODULE}, ?MODULE, none).
|
||||||
|
|
||||||
|
|
||||||
|
-spec init(none) -> {ok, {supervisor:sup_flags(), [supervisor:child_spec()]}}.
|
||||||
|
%% @private
|
||||||
|
%% The OTP init/1 function.
|
||||||
|
|
||||||
|
init(none) ->
|
||||||
|
RestartStrategy = {simple_one_for_one, 1, 60},
|
||||||
|
〘*CAP SERVICE*〙 =
|
||||||
|
{〘*PREFIX*〙_〘*SERVICE*〙,
|
||||||
|
{〘*PREFIX*〙_〘*SERVICE*〙, start_link, []},
|
||||||
|
temporary,
|
||||||
|
brutal_kill,
|
||||||
|
worker,
|
||||||
|
[〘*PREFIX*〙_〘*SERVICE*〙]},
|
||||||
|
{ok, {RestartStrategy, [〘*CAP SERVICE*〙]}}.
|
||||||
50
zomp/lib/otpr/zx/0.11.7/templates/service_worker/workers.erl
Normal file
50
zomp/lib/otpr/zx/0.11.7/templates/service_worker/workers.erl
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
%%% @doc
|
||||||
|
%%% 〘*PROJECT NAME*〙: 〘*CAP SERVICE*〙 Service Supervisor
|
||||||
|
%%%
|
||||||
|
%%% This is the service-level supervisor of the system. It is the parent of both the
|
||||||
|
%%% client connection handlers and the client manager (which manages the client
|
||||||
|
%%% connection handlers). This is the child of 〘*PREFIX*〙_sup.
|
||||||
|
%%%
|
||||||
|
%%% See: http://erlang.org/doc/apps/kernel/application.html
|
||||||
|
%%% @end
|
||||||
|
|
||||||
|
-module(〘*PREFIX*〙_〘*SERVICE*〙s).
|
||||||
|
-vsn("〘*VERSION*〙").
|
||||||
|
-behavior(supervisor).
|
||||||
|
〘*AUTHOR*〙
|
||||||
|
〘*COPYRIGHT*〙
|
||||||
|
〘*LICENSE*〙
|
||||||
|
|
||||||
|
-export([start_link/0]).
|
||||||
|
-export([init/1]).
|
||||||
|
|
||||||
|
|
||||||
|
-spec start_link() -> {ok, pid()}.
|
||||||
|
%% @private
|
||||||
|
%% This supervisor's own start function.
|
||||||
|
|
||||||
|
start_link() ->
|
||||||
|
supervisor:start_link({local, ?MODULE}, ?MODULE, none).
|
||||||
|
|
||||||
|
-spec init(none) -> {ok, {supervisor:sup_flags(), [supervisor:child_spec()]}}.
|
||||||
|
%% @private
|
||||||
|
%% The OTP init/1 function.
|
||||||
|
|
||||||
|
init(none) ->
|
||||||
|
RestartStrategy = {rest_for_one, 1, 60},
|
||||||
|
〘*CAP SERVICE*〙Man =
|
||||||
|
{〘*PREFIX*〙_〘*SERVICE*〙_man,
|
||||||
|
{〘*PREFIX*〙_〘*SERVICE*〙_man, start_link, []},
|
||||||
|
permanent,
|
||||||
|
5000,
|
||||||
|
worker,
|
||||||
|
[〘*PREFIX*〙_〘*SERVICE*〙_man]},
|
||||||
|
〘*CAP SERVICE*〙Sup =
|
||||||
|
{〘*PREFIX*〙_〘*SERVICE*〙_sup,
|
||||||
|
{〘*PREFIX*〙_〘*SERVICE*〙_sup, start_link, []},
|
||||||
|
permanent,
|
||||||
|
5000,
|
||||||
|
supervisor,
|
||||||
|
[〘*PREFIX*〙_〘*SERVICE*〙_sup]},
|
||||||
|
Children = [〘*CAP SERVICE*〙Sup, 〘*CAP SERVICE*〙Man],
|
||||||
|
{ok, {RestartStrategy, Children}}.
|
||||||
@ -9,7 +9,7 @@
|
|||||||
{license,"MIT"}.
|
{license,"MIT"}.
|
||||||
{modules,[]}.
|
{modules,[]}.
|
||||||
{name,"zx"}.
|
{name,"zx"}.
|
||||||
{package_id,{"otpr","zx",{0,11,6}}}.
|
{package_id,{"otpr","zx",{0,11,7}}}.
|
||||||
{prefix,"zx_"}.
|
{prefix,"zx_"}.
|
||||||
{repo_url,"https://gitlab.com/zxq9/zx"}.
|
{repo_url,"https://gitlab.com/zxq9/zx"}.
|
||||||
{tags,["tools","package manager","erlang"]}.
|
{tags,["tools","package manager","erlang"]}.
|
||||||
Loading…
x
Reference in New Issue
Block a user