prop/lib
Graham McIntire 5255a6ba63
perf(weather): batch ASOS observation upserts into a single insert_all
IemClient.fetch_asos returns 24-288 rows per station per call, each
previously triggering an individual UPDATE-conflict round-trip via
Weather.upsert_surface_observation/2. On the Turing Pi 2 Postgres
node that per-row latency dominates ingestion time.

Add Weather.upsert_surface_observations/2, a bulk variant that collapses
the rows into a single Repo.insert_all with the same
update-only-when-changed on_conflict predicate and (station_id,
observed_at) conflict target. Switch WeatherFetchWorker to use it.
2026-04-21 13:19:53 -05:00
..
microwaveprop perf(weather): batch ASOS observation upserts into a single insert_all 2026-04-21 13:19:53 -05:00
microwaveprop_web fix(security): only trust forwarded-ip headers from known proxies 2026-04-21 13:19:52 -05:00
mix/tasks fix(dialyzer): actually fix LiveTable warnings instead of hiding them 2026-04-21 12:58:10 -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