From a50980c496ffcf8ff5d552daae085062aa4f8f8d Mon Sep 17 00:00:00 2001 From: DDDHuang <44492639+DDDHuang@users.noreply.github.com> Date: Wed, 27 Apr 2022 10:26:47 +0800 Subject: [PATCH] fix: disconnected status in auto_reconnect = false --- .../src/emqx_resource_instance.erl | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/apps/emqx_resource/src/emqx_resource_instance.erl b/apps/emqx_resource/src/emqx_resource_instance.erl index 97014e413..351c34eeb 100644 --- a/apps/emqx_resource/src/emqx_resource_instance.erl +++ b/apps/emqx_resource/src/emqx_resource_instance.erl @@ -303,7 +303,13 @@ do_health_check(InstId) when is_binary(InstId) -> do_health_check(_Group, #{state := undefined}) -> {error, resource_not_initialized}; -do_health_check(Group, #{id := InstId, mod := Mod, state := ResourceState0} = Data) -> +do_health_check(Group, + #{id := InstId, mod := Mod, state := ResourceState0, config := Config} = Data) -> + FailedConnectStatus = + case maps:get(auto_reconnect, Config, true) of + true -> connecting; + false -> disconnected + end, case emqx_resource:call_health_check(InstId, Mod, ResourceState0) of {ok, ResourceState1} -> ets:insert( @@ -313,17 +319,13 @@ do_health_check(Group, #{id := InstId, mod := Mod, state := ResourceState0} = Da ok; {error, Reason} -> logger:error("health check for ~p failed: ~p", [InstId, Reason]), - ets:insert( - emqx_resource_instance, - {InstId, Group, Data#{status => connecting}} - ), + ets:insert(emqx_resource_instance, + {InstId, Group, Data#{status => FailedConnectStatus}}), {error, Reason}; {error, Reason, ResourceState1} -> logger:error("health check for ~p failed: ~p", [InstId, Reason]), - ets:insert( - emqx_resource_instance, - {InstId, Group, Data#{status => connecting, state => ResourceState1}} - ), + ets:insert(emqx_resource_instance, + {InstId, Group, Data#{status => FailedConnectStatus, state => ResourceState1}}), {error, Reason} end.