Skip to content

Audit dashboard sr fix#2

Merged
BoBeauf merged 5 commits intomainfrom
audit-dashboard-sr-fix
Apr 13, 2026
Merged

Audit dashboard sr fix#2
BoBeauf merged 5 commits intomainfrom
audit-dashboard-sr-fix

Conversation

@BoBeauf
Copy link
Copy Markdown
Owner

@BoBeauf BoBeauf commented Apr 13, 2026

No description provided.

Louis Perso and others added 5 commits April 12, 2026 12:36
…cted

Les 458 radars I_xx_xxx (Itinéraires) n'ont pas d'endpoint detail
fonctionnel — le serveur coupe la connexion sans répondre.
Avec 5 retries × backoff exponentiel ça bloquait tous les workers.

- Skip detail fetch pour typeLabel == "Itinéraires"
- RemoteDisconnected → abandon immédiat sans retry
- Import RequestsConnectionError pour détecter spécifiquement ce cas

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…radars

"Sur toute la longueur de cet itinéraire, il peut y avoir de un à
plusieurs radars, de plusieurs types." → pas un radar ponctuel, inutile
en base. Filtre appliqué sur typeLabel == "Itinéraires" avant le fetch
des détails (458 radars éliminés, ~12% du total SR).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Le serveur SR bloque l'IP GHA après ~300 requêtes à 25 req/s.
1 worker = ~3 req/s (throttlé par le RTT réseau), suffisant pour
fetcher les 3206 radars en ~15-20 min sans déclencher le rate-limit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…serveur)

Le serveur SR ferme la connexion persistente après ~300 requêtes.
Sur SessionDisconnected : pause 10s + nouvelle session + retry,
pour reprendre proprement sans perdre les radars restants.

Utilise un conteneur mutable [session] pour partager la session
dans la closure process_one sans piège nonlocal.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tests locaux : 150/150 OK sans aucun ban avec ce rythme.
Extrapolation : ~73 min pour 3206 radars (dans le timeout GHA 90 min).

- Ordre aléatoire (random.shuffle) : évite les patterns répétitifs
- Délai 1.0s ± 0.5s entre chaque requête detail
- Fetch séquentiel simple (plus besoin de ThreadPoolExecutor pour SR)
- Supprime SessionDisconnected, make_sr_session, SR_RECONNECT_WAIT_S
- Supprime SR_MAX_CONCURRENT (1 worker = séquentiel)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@BoBeauf BoBeauf merged commit 1358048 into main Apr 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant