mirror of
https://github.com/koala73/worldmonitor.git
synced 2026-05-14 19:16:20 +02:00
Root cause: 5 unique bbox queries fire simultaneously when the 30s negative cache expires, ALL get 429'd by OpenSky, ALL get re-cached as negative for 30s, cycle repeats forever with zero data flowing. Fix: - Global 429 cooldown (90s default, env-configurable) — when ANY request gets 429, ALL upstream requests are blocked until cooldown expires. Reduces wasted requests from 5/30s to 1/90s. - Request serializer queue — upstream requests go one at a time with 2s minimum spacing. Prevents concurrent burst that triggers rate limit. - Promisified upstream fetch replaces callback-based https.get for cleaner queue integration. - /opensky-reset clears the 429 cooldown. - /metrics and /opensky-diag expose cooldown state for debugging.