From a8d3acbc2cc402b180cbb894c06c8af2a9d64cd9 Mon Sep 17 00:00:00 2001 From: neylix Date: Sun, 17 Jul 2022 19:46:29 +0200 Subject: [PATCH] Set message processing asynchronous --- .../p2p/listener_protocol/broadway_pipeline.ex | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/archethic/p2p/listener_protocol/broadway_pipeline.ex b/lib/archethic/p2p/listener_protocol/broadway_pipeline.ex index 430604512..e6502ef4d 100644 --- a/lib/archethic/p2p/listener_protocol/broadway_pipeline.ex +++ b/lib/archethic/p2p/listener_protocol/broadway_pipeline.ex @@ -8,6 +8,7 @@ defmodule Archethic.P2P.ListenerProtocol.BroadwayPipeline do alias Archethic.P2P.Message alias Archethic.P2P.MessageEnvelop alias Archethic.P2P.Client + alias Archethic.TaskSupervisor alias Broadway.Message, as: BroadwayMessage @@ -40,13 +41,16 @@ defmodule Archethic.P2P.ListenerProtocol.BroadwayPipeline do # start_time = System.monotonic_time(:millisecond) BroadwayMessage.update_data(message, fn {socket, transport, data} -> - message = - data - |> decode() - |> process() - |> encode() + Task.Supervisor.async_nolink(TaskSupervisor, fn -> + message = + data + |> decode() + |> process() + |> encode() + + transport.send(socket, message) + end) - transport.send(socket, message) # end_time = System.monotnonic_time(:millisecond) # Logger.debug("Request processed in #{end_time - start_time} ms") end)