diff options
author | stwf <steven.fuchs@dockyard.com> | 2019-08-14 11:58:32 -0400 |
---|---|---|
committer | stwf <steven.fuchs@dockyard.com> | 2019-08-14 11:58:32 -0400 |
commit | 574856ef01fae7ea411ec363929ab9a22d76a65d (patch) | |
tree | e2dbfdad1a3b11dd7caf6c5a33e4531a5b3f2394 | |
parent | 15ef521009f4c232f417ca9164c6be3f4ee4e018 (diff) | |
download | pleroma-574856ef01fae7ea411ec363929ab9a22d76a65d.tar.gz |
streamline Streamer pings
-rw-r--r-- | lib/pleroma/web/streamer.ex | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/lib/pleroma/web/streamer.ex b/lib/pleroma/web/streamer.ex index e66378ceb..bbaddd852 100644 --- a/lib/pleroma/web/streamer.ex +++ b/lib/pleroma/web/streamer.ex @@ -35,28 +35,21 @@ defmodule Pleroma.Web.Streamer do end def init(args) do - spawn(fn -> - # 30 seconds - Process.sleep(@keepalive_interval) - GenServer.cast(__MODULE__, %{action: :ping}) - end) + Process.send_after(self(), %{action: :ping}, @keepalive_interval) {:ok, args} end - def handle_cast(%{action: :ping}, topics) do - Map.values(topics) + def handle_info(%{action: :ping}, topics) do + topics + |> Map.values() |> List.flatten() |> Enum.each(fn socket -> Logger.debug("Sending keepalive ping") send(socket.transport_pid, {:text, ""}) end) - spawn(fn -> - # 30 seconds - Process.sleep(@keepalive_interval) - GenServer.cast(__MODULE__, %{action: :ping}) - end) + Process.send_after(self(), %{action: :ping}, @keepalive_interval) {:noreply, topics} end |