chore(banned): Add banned shard
This commit is contained in:
parent
98739224f6
commit
7c9861dbaa
|
@ -23,6 +23,8 @@
|
||||||
|
|
||||||
-define(Otherwise, true).
|
-define(Otherwise, true).
|
||||||
|
|
||||||
|
-define(COMMON_SHARD, emqx_common_shard).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Banner
|
%% Banner
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
@ -134,4 +136,3 @@
|
||||||
}).
|
}).
|
||||||
|
|
||||||
-endif.
|
-endif.
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
-define(APP, emqx).
|
-define(APP, emqx).
|
||||||
|
|
||||||
-define(EMQX_SHARDS, [route_shard]).
|
-define(EMQX_SHARDS, [?ROUTE_SHARD, ?COMMON_SHARD]).
|
||||||
|
|
||||||
-include("emqx_release.hrl").
|
-include("emqx_release.hrl").
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,8 @@
|
||||||
|
|
||||||
-define(BANNED_TAB, ?MODULE).
|
-define(BANNED_TAB, ?MODULE).
|
||||||
|
|
||||||
|
-rlog_shard({?COMMON_SHARD, ?BANNED_TAB}).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% Mnesia bootstrap
|
%% Mnesia bootstrap
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
@ -96,19 +98,19 @@ create(#{who := Who,
|
||||||
reason := Reason,
|
reason := Reason,
|
||||||
at := At,
|
at := At,
|
||||||
until := Until}) ->
|
until := Until}) ->
|
||||||
mnesia:dirty_write(?BANNED_TAB, #banned{who = Who,
|
ekka_mnesia:dirty_write(?BANNED_TAB, #banned{who = Who,
|
||||||
by = By,
|
by = By,
|
||||||
reason = Reason,
|
reason = Reason,
|
||||||
at = At,
|
at = At,
|
||||||
until = Until});
|
until = Until});
|
||||||
create(Banned) when is_record(Banned, banned) ->
|
create(Banned) when is_record(Banned, banned) ->
|
||||||
mnesia:dirty_write(?BANNED_TAB, Banned).
|
ekka_mnesia:dirty_write(?BANNED_TAB, Banned).
|
||||||
|
|
||||||
-spec(delete({clientid, emqx_types:clientid()}
|
-spec(delete({clientid, emqx_types:clientid()}
|
||||||
| {username, emqx_types:username()}
|
| {username, emqx_types:username()}
|
||||||
| {peerhost, emqx_types:peerhost()}) -> ok).
|
| {peerhost, emqx_types:peerhost()}) -> ok).
|
||||||
delete(Who) ->
|
delete(Who) ->
|
||||||
mnesia:dirty_delete(?BANNED_TAB, Who).
|
ekka_mnesia:dirty_delete(?BANNED_TAB, Who).
|
||||||
|
|
||||||
info(InfoKey) ->
|
info(InfoKey) ->
|
||||||
mnesia:table_info(?BANNED_TAB, InfoKey).
|
mnesia:table_info(?BANNED_TAB, InfoKey).
|
||||||
|
@ -129,7 +131,7 @@ handle_cast(Msg, State) ->
|
||||||
{noreply, State}.
|
{noreply, State}.
|
||||||
|
|
||||||
handle_info({timeout, TRef, expire}, State = #{expiry_timer := TRef}) ->
|
handle_info({timeout, TRef, expire}, State = #{expiry_timer := TRef}) ->
|
||||||
mnesia:async_dirty(fun expire_banned_items/1, [erlang:system_time(second)]),
|
ekka_mnesia:transaction(?COMMON_SHARD, fun expire_banned_items/1, [erlang:system_time(second)]),
|
||||||
{noreply, ensure_expiry_timer(State), hibernate};
|
{noreply, ensure_expiry_timer(State), hibernate};
|
||||||
|
|
||||||
handle_info(Info, State) ->
|
handle_info(Info, State) ->
|
||||||
|
@ -160,4 +162,3 @@ expire_banned_items(Now) ->
|
||||||
mnesia:delete_object(?BANNED_TAB, B, sticky_write);
|
mnesia:delete_object(?BANNED_TAB, B, sticky_write);
|
||||||
(_, _Acc) -> ok
|
(_, _Acc) -> ok
|
||||||
end, ok, ?BANNED_TAB).
|
end, ok, ?BANNED_TAB).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue