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]").
|
-logger_header("[Alarm Handler]").
|
||||||
|
|
||||||
|
%% Mnesia bootstrap
|
||||||
|
-export([mnesia/1]).
|
||||||
|
|
||||||
|
-boot_mnesia({mnesia, [boot]}).
|
||||||
|
-copy_mnesia({mnesia, [copy]}).
|
||||||
|
|
||||||
-export([ start_link/1
|
-export([ start_link/1
|
||||||
, stop/0
|
, stop/0
|
||||||
]).
|
]).
|
||||||
|
@ -88,6 +94,27 @@
|
||||||
-compile(nowarn_export_all).
|
-compile(nowarn_export_all).
|
||||||
-endif.
|
-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
|
%% API
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
@ -130,18 +157,6 @@ init([]) ->
|
||||||
Opts = [{actions, [log, publish]}],
|
Opts = [{actions, [log, publish]}],
|
||||||
init([Opts]);
|
init([Opts]);
|
||||||
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(),
|
deactivate_all_alarms(),
|
||||||
Actions = proplists:get_value(actions, Opts),
|
Actions = proplists:get_value(actions, Opts),
|
||||||
SizeLimit = proplists:get_value(size_limit, Opts),
|
SizeLimit = proplists:get_value(size_limit, Opts),
|
||||||
|
|
|
@ -22,6 +22,12 @@
|
||||||
-include_lib("emqx/include/emqx.hrl").
|
-include_lib("emqx/include/emqx.hrl").
|
||||||
-include_lib("emqx/include/logger.hrl").
|
-include_lib("emqx/include/logger.hrl").
|
||||||
|
|
||||||
|
%% Mnesia bootstrap
|
||||||
|
-export([mnesia/1]).
|
||||||
|
|
||||||
|
-boot_mnesia({mnesia, [boot]}).
|
||||||
|
-copy_mnesia({mnesia, [copy]}).
|
||||||
|
|
||||||
%% emqx_gen_mod callbacks
|
%% emqx_gen_mod callbacks
|
||||||
-export([ load/1
|
-export([ load/1
|
||||||
, unload/1
|
, unload/1
|
||||||
|
@ -50,6 +56,20 @@
|
||||||
-define(SERVER, ?MODULE).
|
-define(SERVER, ?MODULE).
|
||||||
-define(MAX_INTERVAL, 4294967).
|
-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
|
%% Load/Unload
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
@ -107,13 +127,6 @@ store(DelayedMsg) ->
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
init([]) ->
|
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})}.
|
{ok, ensure_publish_timer(#{timer => undefined, publish_at => 0})}.
|
||||||
|
|
||||||
handle_call({store, DelayedMsg = #delayed_message{key = Key}}, _From, State) ->
|
handle_call({store, DelayedMsg = #delayed_message{key = Key}}, _From, State) ->
|
||||||
|
|
Loading…
Reference in New Issue