@5minds/processcube_app_sdk 8.2.3-develop-17340a-mlmezagc → 8.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +0 -88
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -46,94 +46,6 @@ Es können nur Komponenten und Funktionen importiert werden, die im Browser funk
46
46
  import { DynamicLink } from '@5minds/processcube_app_sdk/client';
47
47
  ```
48
48
 
49
- ### External Tasks
50
-
51
- External Tasks ermöglichen es, Logik in einer Next.js App auszuführen, die von der ProcessCube Engine als Aufgabe vergeben wird. Dazu wird eine Datei `external_task.ts` (oder `.js`) im `app/`-Verzeichnis der Next.js App angelegt. Der Verzeichnispfad bestimmt das Topic, unter dem die Engine den Task erkennt — z.B. wird `app/order/process/external_task.ts` zum Topic `order/process`.
52
-
53
- Die External Tasks werden automatisch erkannt und als eigene Worker-Prozesse gestartet, wenn `useExternalTasks: true` in der SDK-Konfiguration gesetzt ist:
54
-
55
- ```javascript
56
- // next.config.js
57
- const { withApplicationSdk } = require('@5minds/processcube_app_sdk/server');
58
-
59
- module.exports = withApplicationSdk({
60
- applicationSdk: {
61
- useExternalTasks: true,
62
- },
63
- });
64
- ```
65
-
66
- #### Handler-Signatur
67
-
68
- Der Handler wird als `default export` exportiert und erhält bis zu drei Parameter:
69
-
70
- ```typescript
71
- export default async function handleExternalTask(
72
- payload: any, // Prozess-Variablen
73
- task: ExternalTask<any>, // Task-Metadaten (optional)
74
- signal: AbortSignal, // Abort-Signal (optional)
75
- ) {
76
- // Aufgabe bearbeiten
77
- return { result: 'done' };
78
- }
79
- ```
80
-
81
- Der Rückgabewert wird als Ergebnis an die Engine zurückgegeben und steht im Prozess als Variable zur Verfügung.
82
-
83
- #### Konfiguration
84
-
85
- Über einen benannten `config`-Export können Worker-Einstellungen angepasst werden:
86
-
87
- ```typescript
88
- import { ExternalTaskConfig } from '@5minds/processcube_app_sdk/server';
89
-
90
- export const config: ExternalTaskConfig = {
91
- lockDuration: 5000, // Lock-Dauer in ms (default: 30000)
92
- maxTasks: 5, // Gleichzeitige Tasks (default: 10)
93
- };
94
- ```
95
-
96
- Die `lockDuration` bestimmt, wie oft der Worker der Engine signalisiert, dass er noch aktiv ist. Der Standardwert ist 30 Sekunden.
97
-
98
- #### Abort-Handling bei Boundary Events
99
-
100
- Wenn ein Boundary Event (z.B. ein Timer) einen External Task abbricht, wird das `AbortSignal` ausgelöst. Damit der Worker schnell auf den Abbruch reagiert, sollte die `lockDuration` reduziert werden — die Engine kann den Abbruch erst beim nächsten Lock-Renewal mitteilen.
101
-
102
- | lockDuration | Max. Verzögerung bis Abort |
103
- | --------------- | -------------------------- |
104
- | 30000 (default) | bis zu 30 Sekunden |
105
- | 5000 | bis zu 5 Sekunden |
106
- | 1000 | bis zu 1 Sekunde |
107
-
108
- Vollständiges Beispiel mit Abort-Handling:
109
-
110
- ```typescript
111
- import { ExternalTaskConfig } from '@5minds/processcube_app_sdk/server';
112
-
113
- export const config: ExternalTaskConfig = {
114
- lockDuration: 5000,
115
- };
116
-
117
- export default async function handleExternalTask(payload: any, _task: any, signal: AbortSignal) {
118
- signal.addEventListener(
119
- 'abort',
120
- () => {
121
- console.log('Task wurde durch Boundary Event abgebrochen');
122
- },
123
- { once: true },
124
- );
125
-
126
- // Signal vor und nach asynchronen Operationen prüfen
127
- if (signal.aborted) return;
128
-
129
- const result = await doWork(payload);
130
-
131
- if (signal.aborted) return;
132
-
133
- return result;
134
- }
135
- ```
136
-
137
49
  ## Wie kann ich das Projekt aufsetzen?
138
50
 
139
51
  ### Setup/Installation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5minds/processcube_app_sdk",
3
- "version": "8.2.3-develop-17340a-mlmezagc",
3
+ "version": "8.2.3",
4
4
  "description": "The SDK for ProcessCube Apps",
5
5
  "type": "module",
6
6
  "main": "build/common/index.cjs",