fix mqtt connect

This commit is contained in:
anlicheng 2025-11-17 17:35:11 +08:00
parent 0f4ad8e9f1
commit 1af2666272

View File

@ -19,7 +19,7 @@
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
%% %%
-define(RETRY_INTERVAL, 5000). -define(RETRY_INTERVAL, 15000).
-define(DISCONNECTED, disconnected). -define(DISCONNECTED, disconnected).
-define(CONNECTED, connected). -define(CONNECTED, connected).
@ -111,20 +111,22 @@ handle_info({timeout, _, create_postman}, State = #state{buffer = Buffer, status
{retry_interval, 5000} {retry_interval, 5000}
], ],
try
{ok, ConnPid} = emqtt:start_link(Opts), {ok, ConnPid} = emqtt:start_link(Opts),
lager:debug("[endpoint_mqtt] start connect, options: ~p", [Opts]), lager:debug("[endpoint_mqtt] start connect, options: ~p", [Opts]),
case catch emqtt:connect(ConnPid, 5000) of case emqtt:connect(ConnPid, 5000) of
{ok, _} -> {ok, _} ->
lager:debug("[endpoint_mqtt] connect success, pid: ~p", [ConnPid]), lager:debug("[endpoint_mqtt] connect success, pid: ~p", [ConnPid]),
NBuffer = endpoint_buffer:trigger_n(Buffer), NBuffer = endpoint_buffer:trigger_n(Buffer),
{noreply, State#state{conn_pid = ConnPid, buffer = NBuffer, status = ?CONNECTED}}; {noreply, State#state{conn_pid = ConnPid, buffer = NBuffer, status = ?CONNECTED}};
{error, Reason} -> {error, Reason} ->
lager:warning("[endpoint_mqtt] connect get error: ~p", [Reason]), lager:warning("[endpoint_mqtt] connect get error: ~p", [Reason]),
erlang:start_timer(5000, self(), create_postman), erlang:start_timer(?RETRY_INTERVAL, self(), create_postman),
{noreply, State}; {noreply, State}
Error -> end
catch _:Error->
lager:warning("[endpoint_mqtt] connect get error: ~p", [Error]), lager:warning("[endpoint_mqtt] connect get error: ~p", [Error]),
erlang:start_timer(5000, self(), create_postman), erlang:start_timer(?RETRY_INTERVAL, self(), create_postman),
{noreply, State} {noreply, State}
end; end;