diff --git a/config/runtime.exs b/config/runtime.exs index 75670863..58580e0e 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -208,8 +208,15 @@ if config_env() == :prod do # The :narr type is virtual: it targets contacts with hrrr_status = # :unavailable (pre-2014, missing from the HRRR archive) and dispatches # NarrFetchWorker against NCEI. See narr_jobs_for_contact/1. + # limit=2000 keeps each 30-min tick under the Oban job-execution + # timeout that discards unlimited runs after ~17 min. At 4000 + # contacts/hour the backlog of missing-data contacts drains + # steadily without any single job getting killed mid-way. {"*/30 * * * *", Microwaveprop.Workers.BackfillEnqueueWorker, - args: %{"types" => ["hrrr", "weather", "terrain", "iemre", "narr", "radar", "mechanism"]}}, + args: %{ + "limit" => 2000, + "types" => ["hrrr", "weather", "terrain", "iemre", "narr", "radar", "mechanism"] + }}, # Hourly safety net for pos1/pos2/distance_km. Normally every contact # gets positions at insert time via Radio.resolve_grids_and_insert/1, # but direct DB writes (manual fixes, bulk imports) can bypass that.