Loop enqueue workers until all unprocessed QSOs are covered

Previously each run only enqueued 500 QSOs (the query limit).
Now weather, HRRR, and terrain enqueue functions recurse until
no unprocessed QSOs remain.
This commit is contained in:
Graham McIntire 2026-03-30 10:11:34 -05:00
parent fdc2a31c77
commit ce4253f412
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59

View file

@ -22,49 +22,62 @@ defmodule Microwaveprop.Workers.QsoWeatherEnqueueWorker do
end end
defp enqueue_weather_jobs do defp enqueue_weather_jobs do
qsos = Radio.unprocessed_qsos() case Radio.unprocessed_qsos() do
[] ->
:ok
if qsos != [] do qsos ->
Radio.backfill_distances(qsos) Radio.backfill_distances(qsos)
jobs = build_weather_jobs(qsos) jobs = build_weather_jobs(qsos)
if jobs != [] do if jobs != [] do
Oban.insert_all(jobs) Oban.insert_all(jobs)
end end
qso_ids = Enum.map(qsos, & &1.id) qso_ids = Enum.map(qsos, & &1.id)
Radio.mark_weather_queued!(qso_ids) Radio.mark_weather_queued!(qso_ids)
enqueue_weather_jobs()
end end
end end
defp enqueue_hrrr_jobs do defp enqueue_hrrr_jobs do
qsos = Radio.unprocessed_hrrr_qsos() case Radio.unprocessed_hrrr_qsos() do
[] ->
:ok
if qsos != [] do qsos ->
jobs = build_hrrr_jobs(qsos) jobs = build_hrrr_jobs(qsos)
if jobs != [] do if jobs != [] do
Oban.insert_all(jobs) Oban.insert_all(jobs)
end end
qso_ids = Enum.map(qsos, & &1.id) qso_ids = Enum.map(qsos, & &1.id)
Radio.mark_hrrr_queued!(qso_ids) Radio.mark_hrrr_queued!(qso_ids)
enqueue_hrrr_jobs()
end end
end end
defp enqueue_terrain_jobs do defp enqueue_terrain_jobs do
qsos = Radio.unprocessed_terrain_qsos() case Radio.unprocessed_terrain_qsos() do
[] ->
:ok
if qsos != [] do qsos ->
jobs = build_terrain_jobs(qsos) jobs = build_terrain_jobs(qsos)
if jobs != [] do if jobs != [] do
Oban.insert_all(jobs) Oban.insert_all(jobs)
end end
qso_ids = Enum.map(qsos, & &1.id) qso_ids = Enum.map(qsos, & &1.id)
Radio.mark_terrain_queued!(qso_ids) Radio.mark_terrain_queued!(qso_ids)
# Continue until all QSOs are enqueued
enqueue_terrain_jobs()
end end
end end