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:
parent
fdc2a31c77
commit
ce4253f412
1 changed files with 38 additions and 25 deletions
|
|
@ -22,49 +22,62 @@ defmodule Microwaveprop.Workers.QsoWeatherEnqueueWorker do
|
|||
end
|
||||
|
||||
defp enqueue_weather_jobs do
|
||||
qsos = Radio.unprocessed_qsos()
|
||||
case Radio.unprocessed_qsos() do
|
||||
[] ->
|
||||
:ok
|
||||
|
||||
if qsos != [] do
|
||||
Radio.backfill_distances(qsos)
|
||||
qsos ->
|
||||
Radio.backfill_distances(qsos)
|
||||
|
||||
jobs = build_weather_jobs(qsos)
|
||||
jobs = build_weather_jobs(qsos)
|
||||
|
||||
if jobs != [] do
|
||||
Oban.insert_all(jobs)
|
||||
end
|
||||
if jobs != [] do
|
||||
Oban.insert_all(jobs)
|
||||
end
|
||||
|
||||
qso_ids = Enum.map(qsos, & &1.id)
|
||||
Radio.mark_weather_queued!(qso_ids)
|
||||
qso_ids = Enum.map(qsos, & &1.id)
|
||||
Radio.mark_weather_queued!(qso_ids)
|
||||
|
||||
enqueue_weather_jobs()
|
||||
end
|
||||
end
|
||||
|
||||
defp enqueue_hrrr_jobs do
|
||||
qsos = Radio.unprocessed_hrrr_qsos()
|
||||
case Radio.unprocessed_hrrr_qsos() do
|
||||
[] ->
|
||||
:ok
|
||||
|
||||
if qsos != [] do
|
||||
jobs = build_hrrr_jobs(qsos)
|
||||
qsos ->
|
||||
jobs = build_hrrr_jobs(qsos)
|
||||
|
||||
if jobs != [] do
|
||||
Oban.insert_all(jobs)
|
||||
end
|
||||
if jobs != [] do
|
||||
Oban.insert_all(jobs)
|
||||
end
|
||||
|
||||
qso_ids = Enum.map(qsos, & &1.id)
|
||||
Radio.mark_hrrr_queued!(qso_ids)
|
||||
qso_ids = Enum.map(qsos, & &1.id)
|
||||
Radio.mark_hrrr_queued!(qso_ids)
|
||||
|
||||
enqueue_hrrr_jobs()
|
||||
end
|
||||
end
|
||||
|
||||
defp enqueue_terrain_jobs do
|
||||
qsos = Radio.unprocessed_terrain_qsos()
|
||||
case Radio.unprocessed_terrain_qsos() do
|
||||
[] ->
|
||||
:ok
|
||||
|
||||
if qsos != [] do
|
||||
jobs = build_terrain_jobs(qsos)
|
||||
qsos ->
|
||||
jobs = build_terrain_jobs(qsos)
|
||||
|
||||
if jobs != [] do
|
||||
Oban.insert_all(jobs)
|
||||
end
|
||||
if jobs != [] do
|
||||
Oban.insert_all(jobs)
|
||||
end
|
||||
|
||||
qso_ids = Enum.map(qsos, & &1.id)
|
||||
Radio.mark_terrain_queued!(qso_ids)
|
||||
qso_ids = Enum.map(qsos, & &1.id)
|
||||
Radio.mark_terrain_queued!(qso_ids)
|
||||
|
||||
# Continue until all QSOs are enqueued
|
||||
enqueue_terrain_jobs()
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue