> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Hintergrundjobs

Durable Arbeit über den JobRunner-Vertrag und Trigger.dev.

## Einrichtung und Konfiguration

Lesen Sie vor jedem Schritt [Bevor Sie beginnen](https://supastack.dev/de/docs/web/before-you-start.md) und [Terminal-Grundlagen](https://supastack.dev/de/docs/web/terminal-basics.md). Bei diesen Anweisungen wird davon ausgegangen, dass Sie das vollständige Supastack-Monorepo in VS Code geöffnet haben. Sein Stamm package.json markiert den Repository-Stamm. In pnpm-Befehlen ist ein Arbeitsbereichspaket eine App oder ein Ordner mit gemeinsam genutztem Code. Im Produkt ist ein Arbeitsbereich der Datencontainer und die Sicherheitsgrenze eines Teams. corepack pnpm --filter ... wählt ein Paket aus dem Monorepo aus, während Befehle von seinem Stammverzeichnis aus ausgeführt werden. Wenn Sie nur einen synchronisierten Mobil- oder Desktop-Ordner geöffnet haben, enthält dieser weder das Web-Backend, Docker-Setup noch Root-Skripte: Führen Sie das Backend von diesem Monorepo oder einem erreichbaren gehosteten Server aus und verwenden Sie die eigenen Skripte des Plattformordners. Eine Umgebungsvariable ist eine benannte Einstellung, die in einer lokalen .env-Datei oder Ihrem Hosting-Dashboard gespeichert ist; Starten Sie die entsprechende App neu, nachdem Sie sie geändert haben, und halten Sie Servergeheimnisse von den Werten NEXT_PUBLIC_ und EXPO_PUBLIC_ fern.

1. Öffnen Sie apps/web/src/job-handlers.ts und apps/web/src/scheduler-runtime.ts in VS Code. Ein Job ist Hintergrundarbeit; Der Planer entscheidet, wann es in die Warteschlange gestellt wird.

2. Legen Sie für einen lokalen Tick dasselbe SCHEDULER_TICK_SECRET in apps/web/.env.local und im Repository-Root .env fest. Das Tick-Skript liest die Root-.env-Datei, während der Web-Endpunkt seine App-Einstellungen liest.

3. Starten Sie Web mit corepack pnpm --filter @supastack/web dev und führen Sie dann corepack pnpm jobs:tick im Stammverzeichnis aus. Erwartet: Das Terminal zeigt ein POST-Ergebnis von localhost:3000. Trigger.dev ist ein separater Anbieter und benötigt ein eigenes Konto und eigene Serverschlüssel.

Setzen Sie für Produktionsaufgaben JOB_PROVIDER=trigger sowie serverseitig TRIGGER_SECRET_KEY und TRIGGER_PROJECT_REF. Prüfen Sie apps/web/trigger.config.ts und die ai.generate-Aufgabe unter apps/web/trigger, bevor Sie das Zielprojekt konfigurieren.

```
JOB_PROVIDER=trigger
TRIGGER_PROJECT_REF=your-project-reference
# Provide TRIGGER_SECRET_KEY through the server secret store.
# Local/self-hosted scheduler tick:
# SCHEDULER_TICK_SECRET=…
# SCHEDULER_TICK_URL=http://localhost:3000
```


## Befehle zum Kopieren

Befolgen Sie die Kommentare, um zu sehen, in welchem Ordner ein Befehl ausgeführt wird. Wenn zwei Terminals gekennzeichnet sind, öffnen Sie zwei Terminalfenster und lassen Sie den ersten Befehl laufen, während Sie den zweiten verwenden.

```
# Terminal 1 — start the Web app from the monorepo root:
corepack pnpm --filter @supastack/web dev

# Terminal 2 — run one scheduler tick from the monorepo root:
corepack pnpm jobs:tick
```


## Implementierungsablauf

Der gemeinsame JobRunner-Vertrag verspricht Einreihung, Status und Abbruch. Trigger.dev bestimmt die Workflowspezifika; leiten Sie aus der allgemeinen Schnittstelle keine Garantien zu Zeitplanung, Wiederholungen oder Dauerhaftigkeit ab.

Die dauerhafte Anwendungsaufgaben-ID verbindet Dispatch, Worker-Ausführung, Nutzungsdatensätze und Ergebnisse. Ein Fehler beim nachträglichen Anhängen von Provider-Metadaten nach bestätigtem Enqueue darf weder eine erneute Einreihung auslösen noch angenommene Arbeit ungültig machen.


## Überprüfung und Fehlerbehebung

Liefert der Tick 404, prüfen Sie, ob der Schlüssel in beiden Einstellungsdateien vorhanden ist und genau übereinstimmt, und starten Sie Web neu. Meldet das Terminal eine abgelehnte Verbindung, starten Sie zuerst Web. Lief kein Job, prüfen Sie, ob ein Zeitplan aktiviert und fällig ist; ein einzelner Tick führt einen zukünftigen Zeitplan nicht sofort aus.

Prüfen Sie, ob die bereitgestellte Aufgaben-ID und das Projekt zur konfigurierten Umgebung passen. Unterscheiden Sie die Annahme beim Enqueue vom Abschluss des Workflows und von der E-Mail-Zustellung. Lesen Sie docs/production-ai-runtime.md zur Wiederherstellung und sicheren Diagnose, bevor Sie Arbeit manuell wiederholen.


## Weiter

[E-Mail und Versand](https://supastack.dev/de/docs/web/email.md)
