| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- %%--------------------------------------------------------------------
- %% Copyright (c) 2021-2022 EMQ Technologies Co., Ltd. All Rights Reserved.
- %%
- %% Licensed under the Apache License, Version 2.0 (the "License");
- %% you may not use this file except in compliance with the License.
- %% You may obtain a copy of the License at
- %%
- %% http://www.apache.org/licenses/LICENSE-2.0
- %%
- %% Unless required by applicable law or agreed to in writing, software
- %% distributed under the License is distributed on an "AS IS" BASIS,
- %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- %% See the License for the specific language governing permissions and
- %% limitations under the License.
- %%--------------------------------------------------------------------
- -module(emqx_session_router_worker_sup).
- -behaviour(supervisor).
- -export([start_link/1]).
- -export([
- abort_worker/1,
- start_worker/2
- ]).
- -export([init/1]).
- start_link(SessionTab) ->
- supervisor:start_link({local, ?MODULE}, ?MODULE, SessionTab).
- start_worker(SessionID, RemotePid) ->
- supervisor:start_child(?MODULE, [
- #{
- session_id => SessionID,
- remote_pid => RemotePid
- }
- ]).
- abort_worker(Pid) ->
- supervisor:terminate_child(?MODULE, Pid).
- %%--------------------------------------------------------------------
- %% Supervisor callbacks
- %%--------------------------------------------------------------------
- init(SessionTab) ->
- %% Resume worker
- Worker = #{
- id => session_router_worker,
- start => {emqx_session_router_worker, start_link, [SessionTab]},
- restart => transient,
- shutdown => 2000,
- type => worker,
- modules => [emqx_session_router_worker]
- },
- Spec = #{
- strategy => simple_one_for_one,
- intensity => 1,
- period => 5
- },
- {ok, {Spec, [Worker]}}.
|