refactor(router): isolate cleanup logic in router module
This commit is contained in:
parent
b74ff10705
commit
9eccfa0909
|
@ -46,6 +46,8 @@
|
||||||
do_delete_route/2
|
do_delete_route/2
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
-export([cleanup_routes/1]).
|
||||||
|
|
||||||
-export([
|
-export([
|
||||||
match_routes/1,
|
match_routes/1,
|
||||||
lookup_routes/1,
|
lookup_routes/1,
|
||||||
|
@ -70,6 +72,8 @@
|
||||||
|
|
||||||
-type dest() :: node() | {group(), node()}.
|
-type dest() :: node() | {group(), node()}.
|
||||||
|
|
||||||
|
-dialyzer({nowarn_function, [cleanup_routes/1]}).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Mnesia bootstrap
|
%% Mnesia bootstrap
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
@ -196,6 +200,18 @@ print_routes(Topic) ->
|
||||||
match_routes(Topic)
|
match_routes(Topic)
|
||||||
).
|
).
|
||||||
|
|
||||||
|
-spec cleanup_routes(node()) -> ok.
|
||||||
|
cleanup_routes(Node) ->
|
||||||
|
Patterns = [
|
||||||
|
#route{_ = '_', dest = Node},
|
||||||
|
#route{_ = '_', dest = {'_', Node}}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
mnesia:delete_object(?ROUTE_TAB, Route, write)
|
||||||
|
|| Pat <- Patterns,
|
||||||
|
Route <- mnesia:match_object(?ROUTE_TAB, Pat, write)
|
||||||
|
].
|
||||||
|
|
||||||
call(Router, Msg) ->
|
call(Router, Msg) ->
|
||||||
gen_server:call(Router, Msg, infinity).
|
gen_server:call(Router, Msg, infinity).
|
||||||
|
|
||||||
|
|
|
@ -197,11 +197,4 @@ stats_fun() ->
|
||||||
end.
|
end.
|
||||||
|
|
||||||
cleanup_routes(Node) ->
|
cleanup_routes(Node) ->
|
||||||
Patterns = [
|
emqx_router:cleanup_routes(Node).
|
||||||
#route{_ = '_', dest = Node},
|
|
||||||
#route{_ = '_', dest = {'_', Node}}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
mnesia:delete_object(?ROUTE_TAB, Route, write)
|
|
||||||
|| Pat <- Patterns, Route <- mnesia:match_object(?ROUTE_TAB, Pat, write)
|
|
||||||
].
|
|
||||||
|
|
Loading…
Reference in New Issue