ソースを参照

fix(emqx_modules): ignore already_existed/not_found errors for added/removed topic metrics

Serge Tupchii 2 年 前
コミット
ee97cf8e33
1 ファイル変更4 行追加3 行削除
  1. 4 3
      apps/emqx_modules/src/emqx_modules_conf.erl

+ 4 - 3
apps/emqx_modules/src/emqx_modules_conf.erl

@@ -168,10 +168,11 @@ post_config_update(_, _UpdateReq, NewConfig, OldConfig, _AppEnvs) ->
     } = emqx_utils:diff_lists(NewConfig, OldConfig, fun(#{topic := T}) -> T end),
     Deregistered = [emqx_topic_metrics:deregister(T) || #{topic := T} <- Removed],
     Registered = [emqx_topic_metrics:register(T) || #{topic := T} <- Added],
-    Errs = [Res || Res <- Registered ++ Deregistered, Res =/= ok],
-    case Errs of
+    DeregisteredErrs = [Res || Res <- Deregistered, Res =/= ok, Res =/= {error, topic_not_found}],
+    RegisteredErrs = [Res || Res <- Registered, Res =/= ok, Res =/= {error, already_existed}],
+    case DeregisteredErrs ++ RegisteredErrs of
         [] -> ok;
-        _ -> {error, Errs}
+        Errs -> {error, Errs}
     end.
 
 %%--------------------------------------------------------------------