Refactor _refresh_all_agents_impl() avec 4 optimisations: 1. Pre-chargement des servers en dict Python au debut (hostname + IP) -> elimine 2 queries SQL par asset (gain principal) 2. UPSERT 'INSERT ... ON CONFLICT DO UPDATE' + RETURNING (xmax=0) -> une seule query au lieu de SELECT + INSERT/UPDATE -> compte created/updated via xmax 3. HTTP Session reutilisee (requests.Session) -> keep-alive, pas de handshake SSL a chaque page 4. ThreadPoolExecutor(5) pour executer les 5 filtres tagName en parallele -> dedup par asset_id pour eviter traitement double Bonus: - max_pages 30 -> 500 par filtre (evite syncs incomplets silencieux) - FQDN backfill cible via cache 'servers_need_fqdn' (pas d'UPDATE inutile) - Commit unique en fin de traitement (suppression savepoint par asset) - Retrait age-check redondant en mode diff (deja filtre cote API) |
||
|---|---|---|
| .. | ||
| data | ||
| models | ||
| routers | ||
| scripts | ||
| services | ||
| static | ||
| templates | ||
| __init__.py | ||
| auth.py | ||
| config.py | ||
| database.py | ||
| dependencies.py | ||
| main.py | ||