External Tasks
External Tasks sind ein zentrales Konzept in BPMN-Prozessen. Sie ermöglichen es, Aufgaben aus einem Prozess heraus an externe Systeme zu delegieren. Das ProcessCube® App-SDK integriert External Tasks direkt in Next.js-Anwendungen — dateibasiert, automatisch und typsicher.
Wie funktioniert es?
Das App-SDK nutzt das App-Verzeichnis von Next.js. Ähnlich wie app/dashboard/page.tsx eine Route /dashboard definiert, definiert app/filter_email/external_task.ts einen External Task Worker für das Topic filter_email.
Beim Start der Anwendung werden alle external_task.ts-Dateien automatisch erkannt, transpiliert und als Worker-Prozesse gestartet. Änderungen an den Dateien führen zu einem automatischen Neustart des Workers (Hot Reload).
Schnellstart
next.config.ts konfigurieren
const { withApplicationSdk } = require('@5minds/processcube_app_sdk/server');
const nextConfig = {
serverExternalPackages: ['esbuild'],
applicationSdk: {
useExternalTasks: true,
},
};
module.exports = withApplicationSdk(nextConfig);Handler-Datei erstellen
Erstellen Sie eine Datei external_task.ts in einem Unterverzeichnis von app/. Der Verzeichnisname wird zum Topic.
export default async function filterEmail(payload: any) {
const isSpam = payload.subject?.includes('SPAM');
return { is_spam: isSpam };
}Anwendung starten
npm run devDer Worker wird automatisch erkannt und gestartet. In der Konsole erscheint:
Started external task worker ... for topic 'filter_email'Funktionsüberblick
| Feature | Beschreibung |
|---|---|
| Dateibasierte Erkennung | external_task.ts im App-Verzeichnis wird automatisch erkannt |
| Topic aus Pfad | Verzeichnisname = Topic (app/send_email/ → send_email) |
| Hot Reload | Dateiänderungen starten den Worker automatisch neu |
| AbortSignal | Boundary Events brechen laufende Tasks sauber ab |
| Automatischer Neustart | Bei Fehlern wird mit Exponential Backoff neu gestartet |
| Token-Management | Automatischer Token-Refresh bei Authority-Integration |
| Konfigurierbar | lockDuration, maxTasks, payloadFilter und mehr |
Weiterführende Themen
- Handler entwickeln — Dateikonvention, Handler-Signatur, Beispiele
- Konfiguration — next.config.ts, Worker-Optionen, Umgebungsvariablen
- Erweiterte Konzepte — AbortSignal, Resilienz, Hot Reload, Route Groups