# Coaster World v1.112.0 — 2026-08-25

## Analyse des parcs asynchrone

- L’analyse « Analyser et remplir » ne garde plus une requête HTTP ouverte pendant RCDB, Coasterpedia ou OpenStreetMap.
- Chaque étape est exécutée en tâche Laravel dans la file `park-analysis`, hors de la requête Cloudflare.
- La console admin récupère uniquement l’état par polling léger et reprend automatiquement une analyse active après rechargement de la page.
- Une seule analyse peut être active par parc ; un second lancement reprend la tâche existante au lieu d’en créer une autre.
- Le bouton d’arrêt annule l’analyse côté serveur et empêche le lancement des étapes suivantes, même si une source distante répond après l’annulation.
- Un worker de secours est lancé par le Laravel Scheduler chaque minute avec `--stop-when-empty` ; un worker permanent peut être utilisé pour un démarrage immédiat.
- Connexion de queue dédiée avec `retry_after` supérieur au timeout du worker afin d’éviter le double traitement d’une étape lente.
- Timeouts de connexion ajoutés aux connecteurs ThemeParks.wiki, DATAtourisme, Queue-Times, Nominatim, RCDB et Coasterpedia.
- OpenStreetMap/Overpass est borné à 30 secondes maximum par requête HTTP et conserve ses instances de secours.
- L’ajout automatique d’un nouveau parc et l’import d’un parc découvert utilisent aussi la file asynchrone : ils ne peuvent plus provoquer un timeout HTTP long.

## Base de données

- Aucune nouvelle migration.
- Réutilisation des tables Laravel `jobs`, `job_batches` et `failed_jobs` déjà présentes dans le schéma standard du projet.
