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,21 +111,23 @@ handle_info({timeout, _, create_postman}, State = #state{buffer = Buffer, status
{retry_interval, 5000} {retry_interval, 5000}
], ],
{ok, ConnPid} = emqtt:start_link(Opts), try
lager:debug("[endpoint_mqtt] start connect, options: ~p", [Opts]), {ok, ConnPid} = emqtt:start_link(Opts),
case catch emqtt:connect(ConnPid, 5000) of lager:debug("[endpoint_mqtt] start connect, options: ~p", [Opts]),
{ok, _} -> case emqtt:connect(ConnPid, 5000) of
lager:debug("[endpoint_mqtt] connect success, pid: ~p", [ConnPid]), {ok, _} ->
NBuffer = endpoint_buffer:trigger_n(Buffer), lager:debug("[endpoint_mqtt] connect success, pid: ~p", [ConnPid]),
{noreply, State#state{conn_pid = ConnPid, buffer = NBuffer, status = ?CONNECTED}}; NBuffer = endpoint_buffer:trigger_n(Buffer),
{error, Reason} -> {noreply, State#state{conn_pid = ConnPid, buffer = NBuffer, status = ?CONNECTED}};
lager:warning("[endpoint_mqtt] connect get error: ~p", [Reason]), {error, Reason} ->
erlang:start_timer(5000, self(), create_postman), lager:warning("[endpoint_mqtt] connect get error: ~p", [Reason]),
{noreply, State}; erlang:start_timer(?RETRY_INTERVAL, self(), create_postman),
Error -> {noreply, State}
lager:warning("[endpoint_mqtt] connect get error: ~p", [Error]), end
erlang:start_timer(5000, self(), create_postman), catch _:Error->
{noreply, State} lager:warning("[endpoint_mqtt] connect get error: ~p", [Error]),
erlang:start_timer(?RETRY_INTERVAL, self(), create_postman),
{noreply, State}
end; end;
%% 线 %% 线