fix(static-cluster): fix the issue that static cluster failure caused by the wrong way of creating tables
This commit is contained in:
parent
aaf29ee164
commit
87780c1c1b
|
@ -23,6 +23,12 @@
|
|||
|
||||
-logger_header("[Alarm Handler]").
|
||||
|
||||
%% Mnesia bootstrap
|
||||
-export([mnesia/1]).
|
||||
|
||||
-boot_mnesia({mnesia, [boot]}).
|
||||
-copy_mnesia({mnesia, [copy]}).
|
||||
|
||||
-export([ start_link/1
|
||||
, stop/0
|
||||
]).
|
||||
|
@ -88,6 +94,27 @@
|
|||
-compile(nowarn_export_all).
|
||||
-endif.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Mnesia bootstrap
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
mnesia(boot) ->
|
||||
ok = ekka_mnesia:create_table(?ACTIVATED_ALARM,
|
||||
[{type, set},
|
||||
{disc_copies, [node()]},
|
||||
{local_content, true},
|
||||
{record_name, activated_alarm},
|
||||
{attributes, record_info(fields, activated_alarm)}]),
|
||||
ok = ekka_mnesia:create_table(?DEACTIVATED_ALARM,
|
||||
[{type, ordered_set},
|
||||
{disc_copies, [node()]},
|
||||
{local_content, true},
|
||||
{record_name, deactivated_alarm},
|
||||
{attributes, record_info(fields, deactivated_alarm)}]);
|
||||
mnesia(copy) ->
|
||||
ok = ekka_mnesia:copy_table(?ACTIVATED_ALARM),
|
||||
ok = ekka_mnesia:copy_table(?DEACTIVATED_ALARM).
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% API
|
||||
%%--------------------------------------------------------------------
|
||||
|
@ -130,18 +157,6 @@ init([]) ->
|
|||
Opts = [{actions, [log, publish]}],
|
||||
init([Opts]);
|
||||
init([Opts]) ->
|
||||
ok = ekka_mnesia:create_table(?ACTIVATED_ALARM,
|
||||
[{type, set},
|
||||
{disc_copies, [node()]},
|
||||
{local_content, true},
|
||||
{record_name, activated_alarm},
|
||||
{attributes, record_info(fields, activated_alarm)}]),
|
||||
ok = ekka_mnesia:create_table(?DEACTIVATED_ALARM,
|
||||
[{type, ordered_set},
|
||||
{disc_copies, [node()]},
|
||||
{local_content, true},
|
||||
{record_name, deactivated_alarm},
|
||||
{attributes, record_info(fields, deactivated_alarm)}]),
|
||||
deactivate_all_alarms(),
|
||||
Actions = proplists:get_value(actions, Opts),
|
||||
SizeLimit = proplists:get_value(size_limit, Opts),
|
||||
|
|
|
@ -22,6 +22,12 @@
|
|||
-include_lib("emqx/include/emqx.hrl").
|
||||
-include_lib("emqx/include/logger.hrl").
|
||||
|
||||
%% Mnesia bootstrap
|
||||
-export([mnesia/1]).
|
||||
|
||||
-boot_mnesia({mnesia, [boot]}).
|
||||
-copy_mnesia({mnesia, [copy]}).
|
||||
|
||||
%% emqx_gen_mod callbacks
|
||||
-export([ load/1
|
||||
, unload/1
|
||||
|
@ -50,6 +56,20 @@
|
|||
-define(SERVER, ?MODULE).
|
||||
-define(MAX_INTERVAL, 4294967).
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Mnesia bootstrap
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
mnesia(boot) ->
|
||||
ok = ekka_mnesia:create_table(?TAB, [
|
||||
{type, ordered_set},
|
||||
{disc_copies, [node()]},
|
||||
{local_content, true},
|
||||
{record_name, delayed_message},
|
||||
{attributes, record_info(fields, delayed_message)}]);
|
||||
mnesia(copy) ->
|
||||
ok = ekka_mnesia:copy_table(?TAB, disc_copies).
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Load/Unload
|
||||
%%--------------------------------------------------------------------
|
||||
|
@ -107,13 +127,6 @@ store(DelayedMsg) ->
|
|||
%%--------------------------------------------------------------------
|
||||
|
||||
init([]) ->
|
||||
ok = ekka_mnesia:create_table(?TAB, [
|
||||
{type, ordered_set},
|
||||
{disc_copies, [node()]},
|
||||
{local_content, true},
|
||||
{record_name, delayed_message},
|
||||
{attributes, record_info(fields, delayed_message)}]),
|
||||
ok = ekka_mnesia:copy_table(?TAB, disc_copies),
|
||||
{ok, ensure_publish_timer(#{timer => undefined, publish_at => 0})}.
|
||||
|
||||
handle_call({store, DelayedMsg = #delayed_message{key = Key}}, _From, State) ->
|
||||
|
|
Loading…
Reference in New Issue