This commit is contained in:
anlicheng 2023-12-23 14:52:51 +08:00
parent 4b72498d3a
commit 231ddbad22
4 changed files with 20 additions and 18 deletions

View File

@ -14,7 +14,7 @@
-behaviour(gen_server). -behaviour(gen_server).
%% API %% API
-export([start_link/1]). -export([start_link/0]).
%% gen_server callbacks %% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
@ -39,10 +39,10 @@
%%%=================================================================== %%%===================================================================
%% @doc Spawns the server and registers the local name (unique) %% @doc Spawns the server and registers the local name (unique)
-spec(start_link(Props :: list()) -> -spec(start_link() ->
{ok, Pid :: pid()} | ignore | {error, Reason :: term()}). {ok, Pid :: pid()} | ignore | {error, Reason :: term()}).
start_link(Props) when is_list(Props) -> start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [Props], []). gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
%%%=================================================================== %%%===================================================================
%%% gen_server callbacks %%% gen_server callbacks
@ -53,9 +53,10 @@ start_link(Props) when is_list(Props) ->
-spec(init(Args :: term()) -> -spec(init(Args :: term()) ->
{ok, State :: #state{}} | {ok, State :: #state{}, timeout() | hibernate} | {ok, State :: #state{}} | {ok, State :: #state{}, timeout() | hibernate} |
{stop, Reason :: term()} | ignore). {stop, Reason :: term()} | ignore).
init([Props]) -> init([]) ->
erlang:process_flag(trap_exit, true), erlang:process_flag(trap_exit, true),
{ok, Props} = application:get_env(iot, zhongdian),
%% , %% ,
erlang:start_timer(0, self(), create_consumer), erlang:start_timer(0, self(), create_consumer),
%% %%

View File

@ -13,7 +13,7 @@
-behaviour(gen_statem). -behaviour(gen_statem).
%% API %% API
-export([start_link/1]). -export([start_link/0]).
-export([get_pid/0, forward/3, get_stat/0]). -export([get_pid/0, forward/3, get_stat/0]).
%% gen_statem callbacks %% gen_statem callbacks
@ -57,8 +57,8 @@ get_stat() ->
%% @doc Creates a gen_statem process which calls Module:init/1 to %% @doc Creates a gen_statem process which calls Module:init/1 to
%% initialize. To ensure a synchronized start-up procedure, this %% initialize. To ensure a synchronized start-up procedure, this
%% function does not return until Module:init/1 has returned. %% function does not return until Module:init/1 has returned.
start_link(Opts) when is_list(Opts) -> start_link() ->
gen_statem:start_link({local, ?MODULE}, ?MODULE, [Opts], []). gen_statem:start_link({local, ?MODULE}, ?MODULE, [], []).
%%%=================================================================== %%%===================================================================
%%% gen_statem callbacks %%% gen_statem callbacks
@ -68,7 +68,9 @@ start_link(Opts) when is_list(Opts) ->
%% @doc Whenever a gen_statem is started using gen_statem:start/[3,4] or %% @doc Whenever a gen_statem is started using gen_statem:start/[3,4] or
%% gen_statem:start_link/[3,4], this function is called by the new %% gen_statem:start_link/[3,4], this function is called by the new
%% process to initialize. %% process to initialize.
init([Opts]) -> init([]) ->
{ok, Opts} = application:get_env(iot, jinzhi),
PoolSize = proplists:get_value(pool_size, Opts), PoolSize = proplists:get_value(pool_size, Opts),
PriFile = proplists:get_value(pri_key, Opts), PriFile = proplists:get_value(pri_key, Opts),
Url = proplists:get_value(url, Opts), Url = proplists:get_value(url, Opts),

View File

@ -13,7 +13,7 @@
-behaviour(gen_statem). -behaviour(gen_statem).
%% API %% API
-export([start_link/1]). -export([start_link/0]).
-export([get_pid/0, forward/3, get_stat/0]). -export([get_pid/0, forward/3, get_stat/0]).
%% gen_statem callbacks %% gen_statem callbacks
@ -57,8 +57,8 @@ get_stat() ->
%% @doc Creates a gen_statem process which calls Module:init/1 to %% @doc Creates a gen_statem process which calls Module:init/1 to
%% initialize. To ensure a synchronized start-up procedure, this %% initialize. To ensure a synchronized start-up procedure, this
%% function does not return until Module:init/1 has returned. %% function does not return until Module:init/1 has returned.
start_link(Opts) when is_list(Opts) -> start_link() ->
gen_statem:start_link({local, ?MODULE}, ?MODULE, [Opts], []). gen_statem:start_link({local, ?MODULE}, ?MODULE, [], []).
%%%=================================================================== %%%===================================================================
%%% gen_statem callbacks %%% gen_statem callbacks
@ -68,7 +68,9 @@ start_link(Opts) when is_list(Opts) ->
%% @doc Whenever a gen_statem is started using gen_statem:start/[3,4] or %% @doc Whenever a gen_statem is started using gen_statem:start/[3,4] or
%% gen_statem:start_link/[3,4], this function is called by the new %% gen_statem:start_link/[3,4], this function is called by the new
%% process to initialize. %% process to initialize.
init([Opts]) -> init([]) ->
{ok, Opts} = application:get_env(iot, zhongdian),
erlang:process_flag(trap_exit, true), erlang:process_flag(trap_exit, true),
%% , %% ,
erlang:start_timer(0, self(), create_postman), erlang:start_timer(0, self(), create_postman),

View File

@ -26,9 +26,6 @@ start_link() ->
%% type => worker(), % optional %% type => worker(), % optional
%% modules => modules()} % optional %% modules => modules()} % optional
init([]) -> init([]) ->
{ok, MqttOpts} = application:get_env(iot, zhongdian),
{ok, JinZhiOpts} = application:get_env(iot, jinzhi),
SupFlags = #{strategy => one_for_one, intensity => 1000, period => 3600}, SupFlags = #{strategy => one_for_one, intensity => 1000, period => 3600},
Specs = [ Specs = [
#{ #{
@ -60,7 +57,7 @@ init([]) ->
#{ #{
id => 'iot_zd_endpoint', id => 'iot_zd_endpoint',
start => {'iot_zd_endpoint', start_link, [MqttOpts]}, start => {'iot_zd_endpoint', start_link, []},
restart => permanent, restart => permanent,
shutdown => 2000, shutdown => 2000,
type => worker, type => worker,
@ -69,7 +66,7 @@ init([]) ->
#{ #{
id => 'iot_jinzhi_endpoint', id => 'iot_jinzhi_endpoint',
start => {'iot_jinzhi_endpoint', start_link, [JinZhiOpts]}, start => {'iot_jinzhi_endpoint', start_link, []},
restart => permanent, restart => permanent,
shutdown => 2000, shutdown => 2000,
type => worker, type => worker,