EN
Copied
Concepts

États & événements SSE

Payloads exacts pour chaque état de job et chaque événement émis sur le flux SSE.

Le contrat pour toute intégration contre le flux job — bots, dashboards, alerting, assistants IA.

États — énumération complète

Valeur Terminal Fichiers résultats dispo Reprenable
pending non non s/o
running non non s/o
done oui oui (7 jours) oui
failed oui partiels oui
cancelled oui partiels oui
expired oui non (purgés) non

Un job pending ou running ne peut être supprimé, seulement annulé.

Flux SSE

GET /api/jobs/{id}/stream
Accept: text/event-stream

SSE standard ; chaque événement :

event: <name>
data: <json-payload>

Événement status

Toutes les 2 secondes tant que non-terminal, plus une fois à l'état terminal.

{
  "id": "j_abc123",
  "status": "running",
  "processed_points": 412,
  "grid_points_count": 1280,
  "results_count": 387,
  "error_count": 2,
  "download_available": false,
  "query_stats": {
    "bakery": { "found_pct": 92 },
    "dentist": { "found_pct": 78 }
  }
}
Champ Type Description
id string Id du job
status enum Voir tableau ci-dessus
processed_points int Items traités
grid_points_count int Items planifiés
results_count int Lignes de résultats à ce stade
error_count int Items en échec (le job peut quand même atteindre done)
download_available bool true une fois le fichier prêt
query_stats object Stats par requête ; dépend du module

Événement log

Émis au fil des nouvelles lignes de log (par lots, sondage interne 0,5 s).

{
  "message": "Picked up 12 POIs in Lyon centre",
  "level": "info",
  "timestamp": "2026-05-27T14:21:08Z"
}

leveldebug · info · warn · error.

Événement done

Émis une fois, puis le flux se ferme. Même événement pour failed et cancelled — vérifier status.

{
  "id": "j_abc123",
  "status": "done",
  "results_count": 1820,
  "duration_seconds": 1342
}

Événement error

Erreurs au niveau du flux (auth, not-found). Différent d'un job terminé en failed (qui arrive via done avec status: "failed").

{ "code": "forbidden", "message": "Not your job" }

Intervalles de sondage (sans SSE)

Endpoint Intervalle minimum
/api/jobs/{id} 2 secondes
/api/jobs 5 secondes

L'état interne se rafraîchit toutes les 2 s ; sonder plus vite n'apporte rien.

Timeouts

Élément Valeur
Durée max d'un flux SSE 6 heures
Timeout global d'un job 6 heures
Fenêtre de reconnexion worker idle 30 secondes
Rétention fichiers résultats après done 7 jours

La suite