From 9e975aa64b5c799c5f9624a15cac8bb18542baf5 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Thu, 2 Apr 2026 11:10:22 -0500 Subject: [PATCH] Add unique constraint to all enrichment workers to prevent duplicates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WeatherFetchWorker, HrrrFetchWorker, and TerrainProfileWorker now have unique: [period: 3600] — Oban deduplicates identical jobs within 1 hour. Repeated page loads won't queue redundant fetches. --- lib/microwaveprop/workers/hrrr_fetch_worker.ex | 2 +- lib/microwaveprop/workers/terrain_profile_worker.ex | 2 +- lib/microwaveprop/workers/weather_fetch_worker.ex | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/microwaveprop/workers/hrrr_fetch_worker.ex b/lib/microwaveprop/workers/hrrr_fetch_worker.ex index 92a0f35e..587f3a94 100644 --- a/lib/microwaveprop/workers/hrrr_fetch_worker.ex +++ b/lib/microwaveprop/workers/hrrr_fetch_worker.ex @@ -1,6 +1,6 @@ defmodule Microwaveprop.Workers.HrrrFetchWorker do @moduledoc false - use Oban.Worker, queue: :hrrr, max_attempts: 20 + use Oban.Worker, queue: :hrrr, max_attempts: 20, unique: [period: 3600] alias Microwaveprop.Weather alias Microwaveprop.Weather.HrrrClient diff --git a/lib/microwaveprop/workers/terrain_profile_worker.ex b/lib/microwaveprop/workers/terrain_profile_worker.ex index 299d6ec5..69660801 100644 --- a/lib/microwaveprop/workers/terrain_profile_worker.ex +++ b/lib/microwaveprop/workers/terrain_profile_worker.ex @@ -1,6 +1,6 @@ defmodule Microwaveprop.Workers.TerrainProfileWorker do @moduledoc false - use Oban.Worker, queue: :terrain, max_attempts: 20 + use Oban.Worker, queue: :terrain, max_attempts: 20, unique: [period: 3600] alias Microwaveprop.Radio alias Microwaveprop.Terrain diff --git a/lib/microwaveprop/workers/weather_fetch_worker.ex b/lib/microwaveprop/workers/weather_fetch_worker.ex index 1a1886ba..38f74e0e 100644 --- a/lib/microwaveprop/workers/weather_fetch_worker.ex +++ b/lib/microwaveprop/workers/weather_fetch_worker.ex @@ -1,6 +1,6 @@ defmodule Microwaveprop.Workers.WeatherFetchWorker do @moduledoc false - use Oban.Worker, queue: :weather, max_attempts: 20 + use Oban.Worker, queue: :weather, max_attempts: 20, unique: [period: 3600] alias Microwaveprop.Repo alias Microwaveprop.Weather