diff --git a/lib/microwaveprop/workers/propagation_grid_worker.ex b/lib/microwaveprop/workers/propagation_grid_worker.ex index 4ce7cd7d..f322aeb8 100644 --- a/lib/microwaveprop/workers/propagation_grid_worker.ex +++ b/lib/microwaveprop/workers/propagation_grid_worker.ex @@ -36,6 +36,7 @@ defmodule Microwaveprop.Workers.PropagationGridWorker do case Propagation.upsert_scores(scores) do {:ok, count} -> Logger.info("PropagationGrid: upserted #{count} scores for #{valid_time}") + Phoenix.PubSub.broadcast(Microwaveprop.PubSub, "propagation:updated", {:propagation_updated, valid_time}) :ok error -> diff --git a/lib/microwaveprop_web/live/map_live.ex b/lib/microwaveprop_web/live/map_live.ex index 6c5f7176..7c45e530 100644 --- a/lib/microwaveprop_web/live/map_live.ex +++ b/lib/microwaveprop_web/live/map_live.ex @@ -6,7 +6,6 @@ defmodule MicrowavepropWeb.MapLive do alias Microwaveprop.Propagation.BandConfig @default_band 10_000 - @refresh_interval_ms to_timeout(minute: 5) @impl true def mount(_params, _session, socket) do @@ -15,7 +14,7 @@ defmodule MicrowavepropWeb.MapLive do valid_time = Propagation.latest_valid_time() if connected?(socket) do - Process.send_after(self(), :refresh, @refresh_interval_ms) + Phoenix.PubSub.subscribe(Microwaveprop.PubSub, "propagation:updated") end {:ok, @@ -43,10 +42,8 @@ defmodule MicrowavepropWeb.MapLive do end @impl true - def handle_info(:refresh, socket) do + def handle_info({:propagation_updated, valid_time}, socket) do scores = Propagation.latest_scores(socket.assigns.selected_band) - valid_time = Propagation.latest_valid_time() - Process.send_after(self(), :refresh, @refresh_interval_ms) socket = socket