prop/lib
Graham McIntire 2405c5f169
Stop PropagationGridWorker crash-looping on forecast hours
warm_grid_cache_and_broadcast was re-SELECTing 92k hrrr_profiles rows
with JSONB profile/duct_characteristics columns on every forecast hour.
Row decoding exceeded the 15s default DB connection timeout, killing
the worker before f01-f18 could run. Oban retried from f00 and got
stuck in a loop: for the last several hours, no forecast hours were
being written and even f00 was stale.

Build the weather cache rows directly from the in-memory grid_data
the worker already has (Weather.build_grid_cache_rows/2) and
GridCache.broadcast_put directly. No DB round trip, no JSONB decode.

Also widen the cron from hourly to every 3 hours so a full f00-f18
sweep (~95 min) can actually complete before the next run starts,
and drop the redundant prune_old_scores() at worker start
(PropagationPruneWorker already runs every 15 min). Add a 60s query
timeout to load_weather_grid_from_db as defense-in-depth for the
cold-cache fill path that still uses it.
2026-04-13 08:20:28 -05:00
..
microwaveprop Stop PropagationGridWorker crash-looping on forecast hours 2026-04-13 08:20:28 -05:00
microwaveprop_web live_table polish + status page cleanup 2026-04-12 18:19:41 -05:00
mix/tasks Fix all remaining credo --strict issues (0 issues) 2026-04-12 10:26:53 -05:00
microwaveprop.ex initial 2026-03-28 11:28:47 -05:00
microwaveprop_web.ex Merge auth links into main nav and lower password min to 8 2026-04-08 10:39:51 -05:00