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, [
{description, "EMQX Enterprise Connector Data Aggregator"},
{vsn, "0.1.0"},
{vsn, "0.1.1"},
{registered, []},
{applications, [
kernel,

View File

@ -372,9 +372,13 @@ lookup_current_buffer(Name) ->
%%
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),
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
Normal == normal; Normal == noproc