# Recette de charge PDF (avant production)

## Objectif
Valider l'absence de blocage utilisateur pendant les generations lourdes.

## Scenario minimal
1. Ouvrir deux navigateurs (ou deux sessions privees).
2. Lancer 2 generations de bulletins en parallele sur des classes differentes.
3. Verifier que la page reste interactive et affiche `pending/running/done`.
4. Telecharger les deux PDFs.

## Scenario recommande
1. Lancer 5 jobs `bulletins` a la suite.
2. Lancer 2 jobs `stats_pdf` pendant que les bulletins tournent.
3. Observer:
   - temps moyen de traitement
   - jobs en erreur
   - taille memoire PHP
   - charge CPU MySQL

## Commandes utiles
- Traiter manuellement un job:
  - `php cli/process_pdf_job.php <job_id>`
- Traiter le prochain job en file:
  - `php cli/process_pdf_job.php --next`

## Criteres de validation
- Aucun timeout HTTP sur l'interface utilisateur.
- Aucun PDF vide (< 500 octets).
- Les jobs en erreur exposent un message lisible.
- Le telechargement final fonctionne pour le createur du job.
