Remove queue pausing from PropagationGridWorker

This commit is contained in:
Graham McIntire 2026-04-02 15:30:06 -05:00
parent 15a09f0d7b
commit d95098daa9
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59

View file

@ -18,9 +18,6 @@ defmodule Microwaveprop.Workers.PropagationGridWorker do
require Logger
# Pause these queues while the grid fetch runs so they don't compete for bandwidth.
# Keep :hrrr running so on-demand contact detail fetches aren't blocked.
@pause_queues [:weather, :iemre, :terrain]
@max_forecast_hour 18
@impl Oban.Worker
@ -34,41 +31,34 @@ defmodule Microwaveprop.Workers.PropagationGridWorker do
Logger.info("PropagationGrid: run_time=#{run_time}, #{length(points)} points, f00-f#{@max_forecast_hour}")
Enum.each(@pause_queues, &Oban.pause_queue(queue: &1))
for_result =
for fh <- 0..@max_forecast_hour do
valid_time = DateTime.add(run_time, fh * 3600, :second)
result = process_forecast_hour(points, run_time, fh, valid_time)
try do
for_result =
for fh <- 0..@max_forecast_hour do
valid_time = DateTime.add(run_time, fh * 3600, :second)
result = process_forecast_hour(points, run_time, fh, valid_time)
case result do
:ok -> valid_time
_ -> nil
end
case result do
:ok -> valid_time
_ -> nil
end
valid_times = Enum.reject(for_result, &is_nil/1)
if valid_times != [] do
Phoenix.PubSub.broadcast(
Microwaveprop.PubSub,
"propagation:updated",
{:propagation_updated, valid_times}
)
end
total_ms = System.monotonic_time(:millisecond) - t_start
Logger.info("PropagationGrid: total time #{format_duration(total_ms)} (#{length(valid_times)} forecast hours)")
valid_times = Enum.reject(for_result, &is_nil/1)
:ok
after
Logger.info("PropagationGrid: resuming backfill queues")
Enum.each(@pause_queues, &Oban.resume_queue(queue: &1))
Weather.prune_old_grid_profiles()
Propagation.prune_old_scores()
if valid_times != [] do
Phoenix.PubSub.broadcast(
Microwaveprop.PubSub,
"propagation:updated",
{:propagation_updated, valid_times}
)
end
total_ms = System.monotonic_time(:millisecond) - t_start
Logger.info("PropagationGrid: total time #{format_duration(total_ms)} (#{length(valid_times)} forecast hours)")
Weather.prune_old_grid_profiles()
Propagation.prune_old_scores()
:ok
end
defp process_forecast_hour(points, run_time, forecast_hour, valid_time) do