Push map updates via PubSub when propagation scores are computed

This commit is contained in:
Graham McIntire 2026-03-31 08:57:51 -05:00
parent 4e2d74e21c
commit 321133c3cb
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59
2 changed files with 3 additions and 5 deletions

View file

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

View file

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