# Betrieb und Kapazität

Die Arbeit mit der Post erledigt der **Worker** – ein Prozess, der die
Postfächer der Reihe nach durchgeht, die Modelle aufruft und Entwürfe schreibt.
Die Seite **Betrieb** (Betreiber, Installation → Betrieb) zeigt, ob genug davon
laufen. Sie wird alle 30 Sekunden aktualisiert.

## Was die Seite zeigt

**Kapazität** – ein Urteil in wenigen Worten:

| Urteil | Was es bedeutet | Was Sie tun |
|---|---|---|
| die Kapazität reicht | kein Assistent liegt mehr als fünf Minuten hinter seinem Rhythmus zurück | nichts |
| Worker hinzufügen | ein Assistent liegt mehr als fünf Minuten zurück | die Parallelität erhöhen oder einen weiteren Prozess starten |
| kein Worker läuft | in der letzten Minute hat sich kein Worker gemeldet | `docker compose ps` und die Logs des Dienstes `worker` |

**Worker** – die laufenden Prozesse, ihre Parallelität, welche Mailsysteme sie
bedienen, welches Postfach sie gerade halten und wann sie sich zuletzt gemeldet
haben.

**Verspätete Postabrufe** – Assistenten, die ihren Termin um mehr als eine
Minute überschritten haben (genannt nach Organisation und Assistent, nie nach
der Adresse des Postfachs).

**Job-Warteschlange** – wie viele warten und laufen und wie viele in den
letzten 24 Stunden erledigt oder fehlgeschlagen sind. **Fehler der letzten
24 Stunden** – was wo schiefgegangen ist.

## Wie Sie Kapazität hinzufügen

1. **Erhöhen Sie zuerst die Parallelität** – in der Karte **Einstellungen der
   Worker** das Feld „Gleichzeitige Postabrufe pro Prozess“ (1–50). Ein
   Postabruf ist vor allem Warten auf die Post und das Modell, daher verkraftet
   selbst ein kleiner Container mehr als die standardmäßigen 3. Die Worker
   übernehmen die Änderung innerhalb von Sekunden, ohne Neustart.
2. **Ein weiterer Prozess auf demselben Rechner**: Läuft der Updater, tragen Sie
   die neue Zahl unter **Installation → Installation** in der Karte
   **Worker-Prozesse** ein – ohne Terminal. Andernfalls führen Sie im
   Verzeichnis der Installation `./draften scale 2` aus (die Gesamtzahl, 1–16).
   Beides schreibt die Zahl als `WORKER_REPLICAS` in `.env`, sodass sie auch
   eine Aktualisierung übersteht; `docker compose up --scale worker=N` hielte
   nur bis zur nächsten Aktualisierung.

Alle Worker-Prozesse laufen auf demselben Rechner wie die Installation; die
Datenbank ist von außen nicht erreichbar.

Ein neuer Worker erscheint innerhalb von Sekunden auf der Seite. Die Worker
teilen sich die Arbeit selbstständig über die Datenbank: Jedes Postfach hält
nur einer, sodass sich zwei Abrufe nie begegnen. Ein Prozess, der abstürzt,
verzögert nur dieses eine Postfach, bis seine Sperre abläuft.

Dieselbe Karte legt das **Standardintervall der Postabrufe** (60–86.400 s) für
Assistenten ohne eigenes Intervall fest.

## Fortgeschritten

- `WORKER_PROVIDERS=google` (eine Liste aus `graph`, `google`) beschränkt einen
  Prozess auf bestimmte Mailsysteme – etwa damit ein langsamerer Anbieter die
  anderen nicht aufhält.
- `WORKER_ID` benennt einen Prozess im Log (standardmäßig hostname:pid).
- Ein Postabruf, der Arbeit für später übrig gelassen hat (das Limit pro Abruf,
  mehr als 200 neue Nachrichten), stellt den Assistenten sofort wieder in die
  Warteschlange, sodass ein überflutetes Postfach in Runden aufholt.

Die Skalierung ist eine menschliche Entscheidung; draften startet nie von selbst
Worker.
