Преглед изворни кода

fix(aggreg): anticipate and handle delivery startup errors

Andrew Mayorov пре 1 година
родитељ
комит
d4fb812352

+ 1 - 1
apps/emqx_connector_aggregator/src/emqx_connector_aggregator.app.src

@@ -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,

+ 7 - 3
apps/emqx_connector_aggregator/src/emqx_connector_aggregator.erl

@@ -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),
-    MRef = erlang:monitor(process, Pid),
-    St#st{deliveries = Ds#{MRef => 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}};
+        {error, _} = Error ->
+            handle_delivery_exit(Buffer, Error, St)
+    end.
 
 handle_delivery_exit(Buffer, Normal, St = #st{name = Name}) when
     Normal == normal; Normal == noproc