From b07df487f0ef1c1490183a3d7a9d5fed27c087c7 Mon Sep 17 00:00:00 2001 From: Andrew Mayorov Date: Tue, 30 Jan 2024 20:56:33 +0100 Subject: [PATCH] feat(modules): manage mria tables explicitly during startup --- apps/emqx_modules/src/emqx_delayed.erl | 12 +++++------- apps/emqx_modules/src/emqx_modules_app.erl | 1 + 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/emqx_modules/src/emqx_delayed.erl b/apps/emqx_modules/src/emqx_delayed.erl index c95cca37b..dbb05182a 100644 --- a/apps/emqx_modules/src/emqx_delayed.erl +++ b/apps/emqx_modules/src/emqx_delayed.erl @@ -25,12 +25,8 @@ -include_lib("snabbkaffe/include/snabbkaffe.hrl"). -include_lib("emqx/include/emqx_hooks.hrl"). -%% Mnesia bootstrap --export([mnesia/1]). - --boot_mnesia({mnesia, [boot]}). - -export([ + create_tables/0, start_link/0, on_message_publish/1 ]). @@ -118,14 +114,16 @@ %%------------------------------------------------------------------------------ %% Mnesia bootstrap %%------------------------------------------------------------------------------ -mnesia(boot) -> + +create_tables() -> ok = mria:create_table(?TAB, [ {type, ordered_set}, {storage, disc_copies}, {local_content, true}, {record_name, delayed_message}, {attributes, record_info(fields, delayed_message)} - ]). + ]), + [?TAB]. %%------------------------------------------------------------------------------ %% Hooks diff --git a/apps/emqx_modules/src/emqx_modules_app.erl b/apps/emqx_modules/src/emqx_modules_app.erl index 3be81d4cd..23e484a25 100644 --- a/apps/emqx_modules/src/emqx_modules_app.erl +++ b/apps/emqx_modules/src/emqx_modules_app.erl @@ -24,6 +24,7 @@ ]). start(_Type, _Args) -> + ok = mria:wait_for_tables(emqx_delayed:create_tables()), {ok, Sup} = emqx_modules_sup:start_link(), maybe_enable_modules(), {ok, Sup}.