prop/lib/microwaveprop_web/live
Graham McIntire 0ed47db8b6
Process one forecast hour per PropagationGridWorker perform
A full f00-f18 sweep takes ~170 min of wall time, longer than the
~90 min gap between deploys on this cluster. Over the last 7 days
every run was killed mid-sweep and zero runs completed. The
propagation_scores table only ever held the scraps from partial
runs that landed before the pod died, which is why the map looked
like it was showing "the current hour" (or nothing).

The worker now processes exactly one forecast hour per perform/1
(~8-10 min) and enqueues the next hour as a fresh Oban job. A cron
fire with empty args seeds the chain at f00; subsequent runs carry
run_time + forecast_hour args. At f18 the chain stops and the
pruner runs. Each step broadcasts propagation:updated immediately
so new hours appear on the map as they land.

Wall time per perform drops from ~170 min to ~10 min, so Lifeline's
2h rescue window is no longer a factor and a pod restart loses at
most one forecast hour instead of the whole sweep. Retries and
max_attempts now describe a single fh, not the whole chain.

Also: bump the :propagation queue from 1 to 2 slots so
PropagationPruneWorker can run alongside the chain job, drop the
worker timeout/1 from 90 min to 20 min to match single-fh runs,
and pull Lifeline rescue_after from 120 min to 45 min to keep the
safety net above the step timeout.

Adds a "Data from HH:MM UTC · Nh ago/now/+Nh" indicator above the
pipeline chip in both the mobile and desktop sidebars so the user
can tell which valid_time the map is showing when the bottom
timeline isn't visible.
2026-04-14 13:24:59 -05:00
..
admin live_table polish + status page cleanup 2026-04-12 18:19:41 -05:00
beacon_live live_table polish + status page cleanup 2026-04-12 18:19:41 -05:00
contact_live Show ERA5 fallback on contact detail, fix status page ERA5 progress 2026-04-13 13:44:31 -05:00
user_management_live Convert /contacts list to live_table 2026-04-12 17:22:15 -05:00
about_live.ex Note CONUS-only coverage on the about page 2026-04-12 14:31:30 -05:00
algo_live.ex Merge auth links into main nav and lower password min to 8 2026-04-08 10:39:51 -05:00
contact_map_live.ex User profiles at /u/:callsign, flexible band input, assorted UX cleanup 2026-04-12 16:13:08 -05:00
map_live.ex Process one forecast hour per PropagationGridWorker perform 2026-04-14 13:24:59 -05:00
path_live.ex Fix /path crash on clear-terrain diffraction loss 2026-04-12 17:50:04 -05:00
privacy_live.ex Trim footer and privacy copy 2026-04-09 12:30:10 -05:00
rover_live.ex Remove grid squares toggle from rover planner page 2026-04-10 17:31:23 -05:00
status_live.ex Shrink status page DB stat values so 8-digit counts fit 2026-04-13 15:52:37 -05:00
submit_live.ex Force 24h timestamps and let logged-in owners edit their contacts directly 2026-04-12 15:18:47 -05:00
user_profile_live.ex Cap "Contacts I'm in" at 100 most recent 2026-04-12 17:04:11 -05:00
weather_map_live.ex Add grid squares and weather radar toggles to the weather map 2026-04-13 16:31:54 -05:00