fix(aggreg): anticipate and handle delivery startup errors

This commit is contained in:
Andrew Mayorov 2024-06-11 11:47:08 +02:00
parent 29fc30ea69
commit d4fb812352
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
2 changed files with 8 additions and 4 deletions

View File

@ -1,6 +1,6 @@
{application, emqx_connector_aggregator, [ {application, emqx_connector_aggregator, [
{description, "EMQX Enterprise Connector Data Aggregator"}, {description, "EMQX Enterprise Connector Data Aggregator"},
{vsn, "0.1.0"}, {vsn, "0.1.1"},
{registered, []}, {registered, []},
{applications, [ {applications, [
kernel, kernel,

View File

@ -372,9 +372,13 @@ lookup_current_buffer(Name) ->
%% %%
enqueue_delivery(Buffer, St = #st{name = Name, deliveries = Ds}) -> enqueue_delivery(Buffer, St = #st{name = Name, deliveries = Ds}) ->
{ok, Pid} = emqx_connector_aggreg_upload_sup:start_delivery(Name, Buffer), case emqx_connector_aggreg_upload_sup:start_delivery(Name, Buffer) of
{ok, Pid} ->
MRef = erlang:monitor(process, Pid), MRef = erlang:monitor(process, Pid),
St#st{deliveries = Ds#{MRef => Buffer}}. St#st{deliveries = Ds#{MRef => Buffer}};
{error, _} = Error ->
handle_delivery_exit(Buffer, Error, St)
end.
handle_delivery_exit(Buffer, Normal, St = #st{name = Name}) when handle_delivery_exit(Buffer, Normal, St = #st{name = Name}) when
Normal == normal; Normal == noproc Normal == normal; Normal == noproc