# Workers

Source : https://webgune.cloud/de-de/docs/workers · Mis à jour le 2026-10-27

# Workers

Ein **Worker** ist ein Dienst ohne Port oder Domain: ein Hintergrundprozess, der eine Warteschlange verarbeitet, geplante Aufgaben ausführt oder Daten kontinuierlich verarbeitet.

## Wann einen Worker wählen

- Eine Warteschlange konsumieren (BullMQ, RabbitMQ, oder eine einfache [Redis](/docs/db-redis)-Liste).
- Wiederkehrende Aufgaben (E-Mail-Versand, Synchronisation, Bereinigung).
- Lange Verarbeitung, die Ihre Web-Anwendung nicht blockieren darf (PDF-Erstellung, Importe).

## Einen Worker erstellen

1. **+ Neuer Dienst** → Typ **Worker**.
2. Verbinden Sie das Repository (oder das Docker-Image) mit dem Code.
3. Definieren Sie bei Bedarf einen dedizierten [Startbefehl](/docs/commande-demarrage). Das ist praktisch, wenn der Worker im selben Repository wie die Web-Anwendung lebt:

```bash
node dist/worker.js
```

## Beispiel: eine Redis-Warteschlange konsumieren

```typescript
import Redis from "ioredis";

const redis = new Redis(process.env.REDIS_URL!);

while (true) {
  // BRPOP blockiert, bis ein Job ankommt
  const [, payload] = await redis.brpop("jobs:emails", 0);
  await sendEmail(JSON.parse(payload));
}
```

Der Web-Dienst schiebt die Jobs (`LPUSH jobs:emails …`), der Worker entnimmt sie: beide Dienste teilen sich dieselbe Redis-Instanz des Projekts, verbunden über ihre Umgebungsvariablen.

## Bewährte Praktiken

- **Ein Worker = eine Verantwortung.** Zwei sehr unterschiedliche Warteschlangen verdienen zwei Worker: jeder skaliert und startet unabhängig neu.
- Beenden Sie den Prozess sauber. Beim Empfang von `SIGTERM` beenden Sie den laufenden Job, bevor Sie stoppen. Redeployments ersetzen den Prozess.
- Idempotenz: ein Job kann nach einem Neustart erneut verarbeitet werden. Stellen Sie sicher, dass eine doppelte Verarbeitung wirkungslos ist.

Die Logs und Metriken (CPU/Speicher) des Workers sind wie bei jedem anderen Dienst in den Tabs **Logs** und **Observability** verfügbar.
