firest 3 лет назад
Родитель
Сommit
0d0080908c
1 измененных файлов с 3 добавлено и 4 удалено
  1. 3 4
      apps/emqx_exhook/src/emqx_exhook_mgr.erl

+ 3 - 4
apps/emqx_exhook/src/emqx_exhook_mgr.erl

@@ -347,7 +347,7 @@ do_load_server(#{name := Name} = Server, #{servers := Servers} = State) ->
 -spec do_reload_server(server_name(), state()) ->
 -spec do_reload_server(server_name(), state()) ->
     {{error, term()}, state()}
     {{error, term()}, state()}
     | {ok, state()}.
     | {ok, state()}.
-do_reload_server(Name, State = #{servers := Servers}) ->
+do_reload_server(Name, State) ->
     case where_is_server(Name, State) of
     case where_is_server(Name, State) of
         not_found ->
         not_found ->
             {{error, not_found}, State};
             {{error, not_found}, State};
@@ -355,7 +355,7 @@ do_reload_server(Name, State = #{servers := Servers}) ->
             {ok, State};
             {ok, State};
         Server ->
         Server ->
             clean_reload_timer(Server),
             clean_reload_timer(Server),
-            do_load_server(Server, Servers)
+            do_load_server(Server, State)
     end.
     end.
 
 
 -spec do_unload_server(server_name(), state()) -> state().
 -spec do_unload_server(server_name(), state()) -> state().
@@ -378,9 +378,8 @@ do_unload_server(Name, #{servers := Servers} = State) ->
             end
             end
     end.
     end.
 
 
-ensure_reload_timer(#{timer := Timer} = Server) when is_reference(Timer) ->
-    Server;
 ensure_reload_timer(#{name := Name, auto_reconnect := Intv} = Server) when is_integer(Intv) ->
 ensure_reload_timer(#{name := Name, auto_reconnect := Intv} = Server) when is_integer(Intv) ->
+    clean_reload_timer(Server),
     Ref = erlang:start_timer(Intv, self(), {reload, Name}),
     Ref = erlang:start_timer(Intv, self(), {reload, Name}),
     Server#{status := connecting, timer := Ref};
     Server#{status := connecting, timer := Ref};
 ensure_reload_timer(Server) ->
 ensure_reload_timer(Server) ->