浏览代码

fix(modules): load application first for ekka_mnesia scanner

JianBo He 4 年之前
父节点
当前提交
49b7d870e0
共有 1 个文件被更改,包括 15 次插入0 次删除
  1. 15 0
      src/emqx_app.erl

+ 15 - 0
src/emqx_app.erl

@@ -36,11 +36,14 @@ start(_Type, _Args) ->
     set_backtrace_depth(),
     print_otp_version_warning(),
     print_banner(),
+    %% Load application first for ekka_mnesia scanner
+    _ = load_ce_modules(),
     ekka:start(),
     {ok, Sup} = emqx_sup:start_link(),
     ok = start_autocluster(),
     ok = emqx_plugins:init(),
     _ = emqx_plugins:load(),
+    _ = start_ce_modules(),
     emqx_boot:is_enabled(listeners) andalso (ok = emqx_listeners:start()),
     register(emqx, self()),
     ok = emqx_alarm_handler:load(),
@@ -58,6 +61,18 @@ set_backtrace_depth() ->
     _ = erlang:system_flag(backtrace_depth, Depth),
     ok.
 
+-ifndef(EMQX_ENTERPRISE).
+load_ce_modules() ->
+    application:load(emqx_modules).
+start_ce_modules() ->
+    application:ensure_all_started(emqx_modules).
+-else.
+load_ce_modules() ->
+    ok.
+start_ce_modules() ->
+    ok.
+-endif.
+
 %%--------------------------------------------------------------------
 %% Print Banner
 %%--------------------------------------------------------------------