# Exploitation et capacité

Le travail sur les e-mails est effectué par le **worker** – un processus qui
parcourt les boîtes mail à tour de rôle, appelle les modèles et rédige les
brouillons. La page **Exploitation** (exploitant, Installation → Exploitation)
indique s’il en tourne suffisamment. Elle s’actualise toutes les 30 secondes.

## Ce qu’affiche la page

**Capacité** – un verdict en quelques mots :

| Verdict | Ce qu’il signifie | Que faire |
|---|---|---|
| la capacité suffit | aucun assistant n’a plus de cinq minutes de retard sur son rythme | rien |
| ajoutez un worker | un assistant a plus de cinq minutes de retard | augmentez la simultanéité ou démarrez un autre processus |
| aucun worker ne tourne | aucun worker ne s’est signalé au cours de la dernière minute | `docker compose ps` et les journaux du service `worker` |

**Workers** – les processus en cours, leur simultanéité, les systèmes de
messagerie qu’ils desservent, la boîte mail qu’ils traitent en ce moment et
quand ils se sont signalés pour la dernière fois.

**Relèves du courrier en retard** – les assistants qui ont dépassé leur
échéance de plus d’une minute (désignés par organisation et par assistant,
jamais par adresse de boîte mail).

**File d’attente des tâches** – combien de tâches attendent et s’exécutent, et
combien se sont terminées ou ont échoué au cours des dernières 24 heures.
**Erreurs des dernières 24 heures** – ce qui a échoué et où.

## Comment augmenter la capacité

1. **Augmentez d’abord la simultanéité** – dans la carte **Paramètres des
   workers**, le champ « Relèves du courrier simultanées par processus »
   (1–50). Une relève du courrier consiste surtout à attendre les e-mails et le
   modèle ; même un petit conteneur en gère donc plus que les 3 par défaut.
   Les workers prennent la modification en compte en quelques secondes, sans
   redémarrage.
2. **Un autre processus sur la même machine** : quand l’updater tourne,
   saisissez le nouveau nombre sous **Installation → Installation**, carte
   **Processus worker** – pas besoin de terminal. Sinon, lancez
   `./draften scale 2` dans le répertoire d’installation (le nombre total,
   1–16). Dans les deux cas, le nombre est inscrit dans `.env` sous
   `WORKER_REPLICAS` et survit donc aussi à une mise à jour ;
   `docker compose up --scale worker=N` ne tiendrait que jusqu’à la prochaine
   mise à jour.

Tous les processus worker tournent sur la même machine que l’installation ; la
base de données n’est pas joignable de l’extérieur.

Un nouveau worker apparaît sur la page en quelques secondes. Les workers se
répartissent eux-mêmes le travail via la base de données : chaque boîte mail
n’est prise que par un seul, si bien que deux relèves ne se croisent jamais. Un
processus qui plante ne retarde que la boîte mail concernée, jusqu’à
l’expiration de son verrou.

La même carte définit l’**intervalle de relève par défaut** (60–86 400 s) pour
les assistants qui n’ont pas leur propre intervalle.

## Avancé

- `WORKER_PROVIDERS=google` (une liste parmi `graph`, `google`) limite un
  processus à certains systèmes de messagerie seulement – par exemple pour
  qu’un fournisseur plus lent ne retienne pas les autres.
- `WORKER_ID` nomme un processus dans le journal (hostname:pid par défaut).
- Une relève du courrier qui a laissé du travail pour plus tard (limite par
  relève, plus de 200 nouveaux messages) remet aussitôt l’assistant en file
  d’attente ; une boîte mail submergée rattrape ainsi son retard par vagues.

Ajuster le nombre de workers est une décision humaine ; draften ne démarre
jamais de workers de lui-même.
