@unchainedshop/core-worker 4.3.3 → 4.4.0
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.
- package/README.md +105 -5
- package/lib/db/WorkQueueCollection.d.ts +10 -10
- package/lib/db/WorkQueueCollection.js +7 -9
- package/lib/module/configureWorkerModule.d.ts +11 -11
- package/lib/module/configureWorkerModule.js +9 -28
- package/lib/worker-index.d.ts +2 -3
- package/lib/worker-index.js +2 -3
- package/package.json +10 -9
- package/lib/db/WorkQueueCollection.d.ts.map +0 -1
- package/lib/db/WorkQueueCollection.js.map +0 -1
- package/lib/db/WorkQueueSchema.d.ts +0 -3
- package/lib/db/WorkQueueSchema.d.ts.map +0 -1
- package/lib/db/WorkQueueSchema.js +0 -20
- package/lib/db/WorkQueueSchema.js.map +0 -1
- package/lib/director/WorkStatus.d.ts +0 -8
- package/lib/director/WorkStatus.d.ts.map +0 -1
- package/lib/director/WorkStatus.js +0 -9
- package/lib/director/WorkStatus.js.map +0 -1
- package/lib/director/WorkerAdapter.d.ts +0 -3
- package/lib/director/WorkerAdapter.d.ts.map +0 -1
- package/lib/director/WorkerAdapter.js +0 -11
- package/lib/director/WorkerAdapter.js.map +0 -1
- package/lib/director/WorkerDirector.d.ts +0 -4
- package/lib/director/WorkerDirector.d.ts.map +0 -1
- package/lib/director/WorkerDirector.js +0 -72
- package/lib/director/WorkerDirector.js.map +0 -1
- package/lib/director/WorkerEventTypes.d.ts +0 -8
- package/lib/director/WorkerEventTypes.d.ts.map +0 -1
- package/lib/director/WorkerEventTypes.js +0 -12
- package/lib/director/WorkerEventTypes.js.map +0 -1
- package/lib/module/configureWorkerModule.d.ts.map +0 -1
- package/lib/module/configureWorkerModule.js.map +0 -1
- package/lib/module/migrations/addMigrations.d.ts +0 -3
- package/lib/module/migrations/addMigrations.d.ts.map +0 -1
- package/lib/module/migrations/addMigrations.js +0 -16
- package/lib/module/migrations/addMigrations.js.map +0 -1
- package/lib/schedulers/FailedRescheduler.d.ts +0 -6
- package/lib/schedulers/FailedRescheduler.d.ts.map +0 -1
- package/lib/schedulers/FailedRescheduler.js +0 -45
- package/lib/schedulers/FailedRescheduler.js.map +0 -1
- package/lib/worker-index.d.ts.map +0 -1
- package/lib/worker-index.js.map +0 -1
- package/lib/workers/BaseWorker.d.ts +0 -8
- package/lib/workers/BaseWorker.d.ts.map +0 -1
- package/lib/workers/BaseWorker.js +0 -81
- package/lib/workers/BaseWorker.js.map +0 -1
- package/lib/workers/EventListenerWorker.d.ts +0 -6
- package/lib/workers/EventListenerWorker.d.ts.map +0 -1
- package/lib/workers/EventListenerWorker.js +0 -46
- package/lib/workers/EventListenerWorker.js.map +0 -1
- package/lib/workers/IntervalWorker.d.ts +0 -9
- package/lib/workers/IntervalWorker.d.ts.map +0 -1
- package/lib/workers/IntervalWorker.js +0 -38
- package/lib/workers/IntervalWorker.js.map +0 -1
- package/src/db/WorkQueueCollection.ts +0 -68
- package/src/module/buildQuerySelector.test.ts +0 -211
- package/src/module/configureWorkerModule.ts +0 -710
- package/src/worker-index.ts +0 -3
- package/tsconfig.json +0 -10
package/README.md
CHANGED
|
@@ -1,9 +1,109 @@
|
|
|
1
|
-
|
|
1
|
+
[](https://npmjs.com/package/@unchainedshop/core-worker)
|
|
2
|
+
[](https://opensource.org/licenses/EUPL-1.2)
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
# @unchainedshop/core-worker
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
Background job queue module for the Unchained Engine. Provides a work queue system for async task processing with plugin-based workers.
|
|
6
7
|
|
|
7
|
-
##
|
|
8
|
+
## Installation
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
```bash
|
|
11
|
+
npm install @unchainedshop/core-worker
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import { configureWorkerModule, WorkStatus } from '@unchainedshop/core-worker';
|
|
18
|
+
|
|
19
|
+
const workerModule = await configureWorkerModule({ db });
|
|
20
|
+
|
|
21
|
+
// Add a work item to the queue
|
|
22
|
+
const workId = await workerModule.addWork({
|
|
23
|
+
type: 'SEND_EMAIL',
|
|
24
|
+
input: {
|
|
25
|
+
to: 'user@example.com',
|
|
26
|
+
template: 'order-confirmation',
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Find pending work
|
|
31
|
+
const pendingWork = await workerModule.findWork({
|
|
32
|
+
status: WorkStatus.NEW,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// Process work (typically done by worker plugins)
|
|
36
|
+
await workerModule.processWork(workId, {
|
|
37
|
+
success: true,
|
|
38
|
+
result: { messageId: 'abc123' },
|
|
39
|
+
});
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## API Overview
|
|
43
|
+
|
|
44
|
+
### Module Configuration
|
|
45
|
+
|
|
46
|
+
| Export | Description |
|
|
47
|
+
|--------|-------------|
|
|
48
|
+
| `configureWorkerModule` | Configure and return the worker module |
|
|
49
|
+
|
|
50
|
+
### Queries
|
|
51
|
+
|
|
52
|
+
| Method | Description |
|
|
53
|
+
|--------|-------------|
|
|
54
|
+
| `findWork` | Find work item by ID |
|
|
55
|
+
| `findWorkQueue` | Find work items with filtering |
|
|
56
|
+
| `count` | Count work items matching query |
|
|
57
|
+
|
|
58
|
+
### Mutations
|
|
59
|
+
|
|
60
|
+
| Method | Description |
|
|
61
|
+
|--------|-------------|
|
|
62
|
+
| `addWork` | Add work item to queue |
|
|
63
|
+
| `allocateWork` | Allocate work to a worker |
|
|
64
|
+
| `processWork` | Mark work as processed |
|
|
65
|
+
| `rescheduleWork` | Reschedule failed work |
|
|
66
|
+
| `deleteWork` | Delete a work item |
|
|
67
|
+
|
|
68
|
+
### Constants
|
|
69
|
+
|
|
70
|
+
| Export | Description |
|
|
71
|
+
|--------|-------------|
|
|
72
|
+
| `WorkStatus` | Status values (NEW, ALLOCATED, SUCCESS, FAILED, DELETED) |
|
|
73
|
+
|
|
74
|
+
### Types
|
|
75
|
+
|
|
76
|
+
| Export | Description |
|
|
77
|
+
|--------|-------------|
|
|
78
|
+
| `Work` | Work item document type |
|
|
79
|
+
| `WorkerModule` | Module interface type |
|
|
80
|
+
|
|
81
|
+
## Work Types
|
|
82
|
+
|
|
83
|
+
Work types are linked to worker plugins. Common built-in types:
|
|
84
|
+
|
|
85
|
+
| Type | Description |
|
|
86
|
+
|------|-------------|
|
|
87
|
+
| `SEND_EMAIL` | Send email notifications |
|
|
88
|
+
| `HEARTBEAT` | Keep-alive jobs |
|
|
89
|
+
| `EXTERNAL` | External service calls |
|
|
90
|
+
|
|
91
|
+
## Worker Plugins
|
|
92
|
+
|
|
93
|
+
Workers process jobs by type. The plugin is responsible for:
|
|
94
|
+
- Handling retries on failure
|
|
95
|
+
- Processing the work input
|
|
96
|
+
- Returning success/failure results
|
|
97
|
+
|
|
98
|
+
## Events
|
|
99
|
+
|
|
100
|
+
| Event | Description |
|
|
101
|
+
|-------|-------------|
|
|
102
|
+
| `WORK_ADDED` | Work item added to queue |
|
|
103
|
+
| `WORK_ALLOCATED` | Work allocated to worker |
|
|
104
|
+
| `WORK_FINISHED` | Work processing completed |
|
|
105
|
+
| `WORK_FAILED` | Work processing failed |
|
|
106
|
+
|
|
107
|
+
## License
|
|
108
|
+
|
|
109
|
+
EUPL-1.2
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { TimestampFields } from '@unchainedshop/mongodb';
|
|
2
|
-
import { mongodb } from '@unchainedshop/mongodb';
|
|
3
|
-
export declare
|
|
4
|
-
NEW
|
|
5
|
-
ALLOCATED
|
|
6
|
-
SUCCESS
|
|
7
|
-
FAILED
|
|
8
|
-
DELETED
|
|
9
|
-
}
|
|
1
|
+
import { type TimestampFields } from '@unchainedshop/mongodb';
|
|
2
|
+
import { type mongodb } from '@unchainedshop/mongodb';
|
|
3
|
+
export declare const WorkStatus: {
|
|
4
|
+
readonly NEW: "NEW";
|
|
5
|
+
readonly ALLOCATED: "ALLOCATED";
|
|
6
|
+
readonly SUCCESS: "SUCCESS";
|
|
7
|
+
readonly FAILED: "FAILED";
|
|
8
|
+
readonly DELETED: "DELETED";
|
|
9
|
+
};
|
|
10
|
+
export type WorkStatus = (typeof WorkStatus)[keyof typeof WorkStatus];
|
|
10
11
|
export type Work = {
|
|
11
12
|
_id: string;
|
|
12
13
|
priority: number;
|
|
@@ -26,4 +27,3 @@ export type Work = {
|
|
|
26
27
|
scheduleId?: string;
|
|
27
28
|
} & TimestampFields;
|
|
28
29
|
export declare const WorkQueueCollection: (db: mongodb.Db) => Promise<mongodb.Collection<Work>>;
|
|
29
|
-
//# sourceMappingURL=WorkQueueCollection.d.ts.map
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { isDocumentDBCompatModeEnabled } from '@unchainedshop/mongodb';
|
|
2
2
|
import { buildDbIndexes } from '@unchainedshop/mongodb';
|
|
3
3
|
const ONE_DAY_IN_SECONDS = 86400;
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
})(WorkStatus || (WorkStatus = {}));
|
|
4
|
+
export const WorkStatus = {
|
|
5
|
+
NEW: 'NEW',
|
|
6
|
+
ALLOCATED: 'ALLOCATED',
|
|
7
|
+
SUCCESS: 'SUCCESS',
|
|
8
|
+
FAILED: 'FAILED',
|
|
9
|
+
DELETED: 'DELETED',
|
|
10
|
+
};
|
|
12
11
|
export const WorkQueueCollection = async (db) => {
|
|
13
12
|
const WorkQueue = db.collection('work_queue');
|
|
14
13
|
if (!isDocumentDBCompatModeEnabled()) {
|
|
@@ -42,4 +41,3 @@ export const WorkQueueCollection = async (db) => {
|
|
|
42
41
|
]);
|
|
43
42
|
return WorkQueue;
|
|
44
43
|
};
|
|
45
|
-
//# sourceMappingURL=WorkQueueCollection.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { mongodb, ModuleInput } from '@unchainedshop/mongodb';
|
|
2
|
-
import { DateFilterInput, SortOption } from '@unchainedshop/utils';
|
|
3
|
-
import { Work, WorkStatus } from '../db/WorkQueueCollection.
|
|
1
|
+
import { type mongodb, type ModuleInput } from '@unchainedshop/mongodb';
|
|
2
|
+
import { type DateFilterInput, type SortOption } from '@unchainedshop/utils';
|
|
3
|
+
import { type Work, WorkStatus } from '../db/WorkQueueCollection.ts';
|
|
4
4
|
export declare const DIRECTOR_MARKED_FAILED_ERROR = "DIRECTOR_MARKED_FAILED";
|
|
5
5
|
export type WorkData = Pick<Partial<Work>, 'input' | 'originalWorkId' | 'priority' | 'retries' | 'timeout' | 'worker' | 'scheduleId'> & Pick<Work, 'type' | 'scheduled'>;
|
|
6
6
|
export interface WorkResult<Result = unknown> {
|
|
@@ -8,13 +8,14 @@ export interface WorkResult<Result = unknown> {
|
|
|
8
8
|
result?: Result;
|
|
9
9
|
error?: any;
|
|
10
10
|
}
|
|
11
|
-
export declare
|
|
12
|
-
ADDED
|
|
13
|
-
ALLOCATED
|
|
14
|
-
FINISHED
|
|
15
|
-
DELETED
|
|
16
|
-
RESCHEDULED
|
|
17
|
-
}
|
|
11
|
+
export declare const WorkerEventTypes: {
|
|
12
|
+
readonly ADDED: "WORK_ADDED";
|
|
13
|
+
readonly ALLOCATED: "WORK_ALLOCATED";
|
|
14
|
+
readonly FINISHED: "WORK_FINISHED";
|
|
15
|
+
readonly DELETED: "WORK_DELETED";
|
|
16
|
+
readonly RESCHEDULED: "WORK_RESCHEDULED";
|
|
17
|
+
};
|
|
18
|
+
export type WorkerEventTypes = (typeof WorkerEventTypes)[keyof typeof WorkerEventTypes];
|
|
18
19
|
export interface WorkerSettingsOptions {
|
|
19
20
|
blacklistedVariables?: string[];
|
|
20
21
|
}
|
|
@@ -134,4 +135,3 @@ export declare const configureWorkerModule: ({ db, options }: ModuleInput<Worker
|
|
|
134
135
|
}) => Promise<WorkerReport[]>;
|
|
135
136
|
}>;
|
|
136
137
|
export type WorkerModule = Awaited<ReturnType<typeof configureWorkerModule>>;
|
|
137
|
-
//# sourceMappingURL=configureWorkerModule.d.ts.map
|
|
@@ -3,18 +3,17 @@ import { createLogger } from '@unchainedshop/logger';
|
|
|
3
3
|
import { generateDbFilterById, buildSortOptions, generateDbObjectId, assertDocumentDBCompatMode, } from '@unchainedshop/mongodb';
|
|
4
4
|
import { emit, registerEvents } from '@unchainedshop/events';
|
|
5
5
|
import { buildObfuscatedFieldsFilter, SortDirection, } from '@unchainedshop/utils';
|
|
6
|
-
import { WorkQueueCollection, WorkStatus } from
|
|
6
|
+
import { WorkQueueCollection, WorkStatus } from "../db/WorkQueueCollection.js";
|
|
7
7
|
const { UNCHAINED_WORKER_ID = os.hostname() } = process.env;
|
|
8
8
|
export const DIRECTOR_MARKED_FAILED_ERROR = 'DIRECTOR_MARKED_FAILED';
|
|
9
9
|
const logger = createLogger('unchained:core-worker');
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
})(WorkerEventTypes || (WorkerEventTypes = {}));
|
|
10
|
+
export const WorkerEventTypes = {
|
|
11
|
+
ADDED: 'WORK_ADDED',
|
|
12
|
+
ALLOCATED: 'WORK_ALLOCATED',
|
|
13
|
+
FINISHED: 'WORK_FINISHED',
|
|
14
|
+
DELETED: 'WORK_DELETED',
|
|
15
|
+
RESCHEDULED: 'WORK_RESCHEDULED',
|
|
16
|
+
};
|
|
18
17
|
const WORK_STATUS_FILTER_MAP = {
|
|
19
18
|
[WorkStatus.DELETED]: { deleted: { $exists: true } },
|
|
20
19
|
[WorkStatus.NEW]: {
|
|
@@ -115,10 +114,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
115
114
|
const WorkQueue = await WorkQueueCollection(db);
|
|
116
115
|
const removePrivateFields = buildObfuscatedFieldsFilter(options?.blacklistedVariables);
|
|
117
116
|
const allocateWork = async ({ types, worker = UNCHAINED_WORKER_ID, }) => {
|
|
118
|
-
// Find a work item that is scheduled for now and is not started.
|
|
119
|
-
// Also:
|
|
120
|
-
// - Restrict by types and worker if provided
|
|
121
|
-
// - Sort by default queue order
|
|
122
117
|
const query = buildQuerySelector({
|
|
123
118
|
status: [WorkStatus.NEW],
|
|
124
119
|
scheduled: { end: new Date() },
|
|
@@ -168,7 +163,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
168
163
|
return work;
|
|
169
164
|
};
|
|
170
165
|
return {
|
|
171
|
-
// Queries
|
|
172
166
|
workerId: UNCHAINED_WORKER_ID,
|
|
173
167
|
activeWorkTypes: async () => {
|
|
174
168
|
const typeList = await WorkQueue.aggregate([{ $group: { _id: '$type' } }]).toArray();
|
|
@@ -243,7 +237,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
243
237
|
logger.error(`${work.type} is in unexpected state`, { workId: work._id });
|
|
244
238
|
throw new Error('Unexpected work status');
|
|
245
239
|
},
|
|
246
|
-
// Mutations
|
|
247
240
|
async addWork({ type, input, priority = 0, scheduled, originalWorkId, worker = null, retries = 20, }) {
|
|
248
241
|
const created = new Date();
|
|
249
242
|
const { insertedId: workId } = await WorkQueue.insertOne({
|
|
@@ -341,13 +334,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
341
334
|
return result.value;
|
|
342
335
|
}
|
|
343
336
|
catch {
|
|
344
|
-
/* Conflicting deleted work problem:
|
|
345
|
-
If the findOneAndUpdate call failed because of _id conflict with a DELETED work,
|
|
346
|
-
we should NOT permanently remove the conflicting deleted work
|
|
347
|
-
and retry the findOneAndUpdate call.
|
|
348
|
-
If we did remove the deleted work, deleted jobs would "re-appear" as NEW with same schedule and _id.
|
|
349
|
-
So we just return null here and let the scheduler try again in the next cycle.
|
|
350
|
-
*/
|
|
351
337
|
return null;
|
|
352
338
|
}
|
|
353
339
|
},
|
|
@@ -373,7 +359,7 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
373
359
|
const workQueue = await WorkQueue.find(buildQuerySelector({
|
|
374
360
|
status: [WorkStatus.ALLOCATED],
|
|
375
361
|
started: { $lte: referenceDate },
|
|
376
|
-
worker: { $in: [worker, '', null] },
|
|
362
|
+
worker: { $in: [worker, '', null] },
|
|
377
363
|
type: { $in: types },
|
|
378
364
|
}), { projection: { _id: true }, sort: { test: 1 } }).toArray();
|
|
379
365
|
return (await Promise.all(workQueue.map(({ _id }) => finishWork(_id, {
|
|
@@ -390,9 +376,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
390
376
|
getReport: async ({ types, dateRange, }) => {
|
|
391
377
|
const pipeline = [];
|
|
392
378
|
const matchConditions = [];
|
|
393
|
-
// build date filter based on provided values it can be a range if both to and from is supplied
|
|
394
|
-
// a upper or lowe limit if either from or to is provided
|
|
395
|
-
// or all if none is provided
|
|
396
379
|
if (dateRange?.start || dateRange?.end) {
|
|
397
380
|
const dateConditions = [];
|
|
398
381
|
if (dateRange?.start) {
|
|
@@ -411,7 +394,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
411
394
|
matchConditions.push({ $and: dateConditions });
|
|
412
395
|
}
|
|
413
396
|
}
|
|
414
|
-
// build types filter if type is provided or ignore types if it is not provided
|
|
415
397
|
if (types && Array.isArray(types) && types.length) {
|
|
416
398
|
matchConditions.push({ type: { $in: types } });
|
|
417
399
|
}
|
|
@@ -460,4 +442,3 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
460
442
|
},
|
|
461
443
|
};
|
|
462
444
|
};
|
|
463
|
-
//# sourceMappingURL=configureWorkerModule.js.map
|
package/lib/worker-index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export * from './db/WorkQueueCollection.
|
|
2
|
-
export * from './module/configureWorkerModule.
|
|
3
|
-
//# sourceMappingURL=worker-index.d.ts.map
|
|
1
|
+
export * from './db/WorkQueueCollection.ts';
|
|
2
|
+
export * from './module/configureWorkerModule.ts';
|
package/lib/worker-index.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
//# sourceMappingURL=worker-index.js.map
|
|
1
|
+
export * from "./db/WorkQueueCollection.js";
|
|
2
|
+
export * from "./module/configureWorkerModule.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-worker",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"main": "lib/worker-index.js",
|
|
5
5
|
"types": "lib/worker-index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"build": "tsc -b",
|
|
10
10
|
"prepublishOnly": "npm run clean && npm run build",
|
|
11
11
|
"watch": "tsc -w",
|
|
12
|
-
"test": "
|
|
13
|
-
"test:watch": "
|
|
12
|
+
"test": "node --test",
|
|
13
|
+
"test:watch": "node --test --watch"
|
|
14
14
|
},
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
@@ -22,8 +22,10 @@
|
|
|
22
22
|
"core"
|
|
23
23
|
],
|
|
24
24
|
"authors": [
|
|
25
|
-
"
|
|
26
|
-
"
|
|
25
|
+
"Pascal Kaufmann",
|
|
26
|
+
"Mikael Araya",
|
|
27
|
+
"Vedran Rudelj",
|
|
28
|
+
"Joël Meiller"
|
|
27
29
|
],
|
|
28
30
|
"license": "EUPL-1.2",
|
|
29
31
|
"bugs": {
|
|
@@ -31,12 +33,11 @@
|
|
|
31
33
|
},
|
|
32
34
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
35
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/logger": "^4.
|
|
35
|
-
"@unchainedshop/utils": "^4.
|
|
36
|
+
"@unchainedshop/logger": "^4.4.0",
|
|
37
|
+
"@unchainedshop/utils": "^4.4.0"
|
|
36
38
|
},
|
|
37
39
|
"devDependencies": {
|
|
38
|
-
"@types/node": "^
|
|
39
|
-
"tsx": "^4.20.3",
|
|
40
|
+
"@types/node": "^25.0.0",
|
|
40
41
|
"typescript": "^5.8.3"
|
|
41
42
|
}
|
|
42
43
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkQueueCollection.d.ts","sourceRoot":"","sources":["../../src/db/WorkQueueCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAIjE,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,IAAI,GAAG;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,eAAe,CAAC;AAEpB,eAAO,MAAM,mBAAmB,GAAU,IAAI,OAAO,CAAC,EAAE,sCAmCvD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkQueueCollection.js","sourceRoot":"","sources":["../../src/db/WorkQueueCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAmB,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAW,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,qCAAuB,CAAA;IACvB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;AACrB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAqBD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAc,EAAE,EAAE;IAC1D,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAO,YAAY,CAAC,CAAC;IAEpD,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC;QACrC,MAAM,cAAc,CAAO,SAAS,EAAE;YACpC;gBACE,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC3F,OAAO,EAAE;oBACP,OAAO,EAAE;wBACP,GAAG,EAAE,CAAC;wBACN,cAAc,EAAE,CAAC;wBACjB,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,CAAC;qBACT;oBACD,IAAI,EAAE,2BAA2B;iBAClC;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,cAAc,CAAO,SAAS,EAAE;QACpC;YACE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;YACtB,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,GAAG,kBAAkB,EAAE;SACzD;QACD,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;QAC1B,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;QAC3B,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QACtB,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE;KACjC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkQueueSchema.d.ts","sourceRoot":"","sources":["../../src/db/WorkQueueSchema.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,eAAO,MAAM,eAAe,cAmB3B,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Schemas } from '@unchainedshop/utils';
|
|
2
|
-
import SimpleSchema from 'simpl-schema';
|
|
3
|
-
export const WorkQueueSchema = new SimpleSchema({
|
|
4
|
-
finished: Date,
|
|
5
|
-
originalWorkId: { type: String },
|
|
6
|
-
priority: { type: Number, required: true },
|
|
7
|
-
retries: { type: Number, required: true },
|
|
8
|
-
scheduled: { type: Date, required: true },
|
|
9
|
-
started: Date,
|
|
10
|
-
success: Boolean,
|
|
11
|
-
timeout: Number,
|
|
12
|
-
type: { type: String, required: true },
|
|
13
|
-
worker: String,
|
|
14
|
-
// Worker data
|
|
15
|
-
input: { type: Object, blackbox: true },
|
|
16
|
-
result: { type: Object, blackbox: true },
|
|
17
|
-
error: { type: Object, blackbox: true },
|
|
18
|
-
...Schemas.timestampFields,
|
|
19
|
-
}, { requiredByDefault: false });
|
|
20
|
-
//# sourceMappingURL=WorkQueueSchema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkQueueSchema.js","sourceRoot":"","sources":["../../src/db/WorkQueueSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,YAAY,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,YAAY,CAC7C;IACE,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzC,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACtC,MAAM,EAAE,MAAM;IACd,cAAc;IACd,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACxC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;IACvC,GAAG,OAAO,CAAC,eAAe;CAC3B,EACD,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAC7B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkStatus.d.ts","sourceRoot":"","sources":["../../src/director/WorkStatus.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export var WorkStatus;
|
|
2
|
-
(function (WorkStatus) {
|
|
3
|
-
WorkStatus["NEW"] = "NEW";
|
|
4
|
-
WorkStatus["ALLOCATED"] = "ALLOCATED";
|
|
5
|
-
WorkStatus["SUCCESS"] = "SUCCESS";
|
|
6
|
-
WorkStatus["FAILED"] = "FAILED";
|
|
7
|
-
WorkStatus["DELETED"] = "DELETED";
|
|
8
|
-
})(WorkStatus || (WorkStatus = {}));
|
|
9
|
-
//# sourceMappingURL=WorkStatus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkStatus.js","sourceRoot":"","sources":["../../src/director/WorkStatus.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,qCAAuB,CAAA;IACvB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;AACrB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerAdapter.d.ts","sourceRoot":"","sources":["../../src/director/WorkerAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAU/F,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { log, LogLevel } from '@unchainedshop/logger';
|
|
2
|
-
export const WorkerAdapter = {
|
|
3
|
-
external: false,
|
|
4
|
-
async doWork() {
|
|
5
|
-
return { success: false, result: null };
|
|
6
|
-
},
|
|
7
|
-
log(message, { level = LogLevel.Debug, ...options } = {}) {
|
|
8
|
-
return log(message, { level, ...options });
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=WorkerAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerAdapter.js","sourceRoot":"","sources":["../../src/director/WorkerAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAA0E;IAClG,QAAQ,EAAE,KAAK;IAEf,KAAK,CAAC,MAAM;QACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;QAC9D,OAAO,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerDirector.d.ts","sourceRoot":"","sources":["../../src/director/WorkerDirector.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEhB,MAAM,gCAAgC,CAAC;AAIxC,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAQrE,eAAO,MAAM,cAAc,EAAE,eAgF5B,CAAC"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { log, LogLevel } from '@unchainedshop/logger';
|
|
2
|
-
import { BaseDirector } from '@unchainedshop/utils';
|
|
3
|
-
export const DIRECTOR_MARKED_FAILED_ERROR = 'DIRECTOR_MARKED_FAILED';
|
|
4
|
-
const AutoScheduleMap = new Map();
|
|
5
|
-
const baseDirector = BaseDirector('WorkerDirector', {
|
|
6
|
-
adapterKeyField: 'key',
|
|
7
|
-
});
|
|
8
|
-
export const WorkerDirector = {
|
|
9
|
-
...baseDirector,
|
|
10
|
-
getActivePluginTypes: ({ external } = {}) => {
|
|
11
|
-
return WorkerDirector.getAdapters()
|
|
12
|
-
.filter((adapter) => {
|
|
13
|
-
if (external === null || external === undefined)
|
|
14
|
-
return true;
|
|
15
|
-
return Boolean(adapter.external) === external;
|
|
16
|
-
})
|
|
17
|
-
.map((adapter) => adapter.type);
|
|
18
|
-
},
|
|
19
|
-
registerAdapter: (Adapter) => {
|
|
20
|
-
if (WorkerDirector.getAdapterByType(Adapter.type))
|
|
21
|
-
throw new Error(`WorkerDirector: There is already a adapter registered with type: ${Adapter.type}`);
|
|
22
|
-
baseDirector.registerAdapter(Adapter);
|
|
23
|
-
},
|
|
24
|
-
disableAutoscheduling: (type) => {
|
|
25
|
-
const config = AutoScheduleMap.get(type);
|
|
26
|
-
AutoScheduleMap.set(type, { ...config, schedule: null });
|
|
27
|
-
},
|
|
28
|
-
unregisterAdapter: (key) => {
|
|
29
|
-
const adapter = WorkerDirector.getAdapter(key);
|
|
30
|
-
const result = baseDirector.unregisterAdapter(key);
|
|
31
|
-
if (adapter) {
|
|
32
|
-
AutoScheduleMap.forEach((workItemConfiguration, scheduleId) => {
|
|
33
|
-
if (workItemConfiguration.type === adapter.type) {
|
|
34
|
-
AutoScheduleMap.delete(scheduleId);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
return result;
|
|
39
|
-
},
|
|
40
|
-
configureAutoscheduling: (workItemConfiguration) => {
|
|
41
|
-
const adapter = WorkerDirector.getAdapterByType(workItemConfiguration.type);
|
|
42
|
-
AutoScheduleMap.set(workItemConfiguration.scheduleId || workItemConfiguration.type, workItemConfiguration);
|
|
43
|
-
log(`WorkerDirector -> Configured ${adapter.type} ${adapter.key}@${adapter.version} (${adapter.label}) for Autorun at ${workItemConfiguration.schedule}`);
|
|
44
|
-
},
|
|
45
|
-
getAutoSchedules: () => Array.from(AutoScheduleMap),
|
|
46
|
-
getAdapterByType: (type) => {
|
|
47
|
-
const adapters = WorkerDirector.getAdapters({
|
|
48
|
-
adapterFilter: (Adapter) => {
|
|
49
|
-
return type === Adapter.type;
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
return adapters?.[0];
|
|
53
|
-
},
|
|
54
|
-
doWork: async ({ type, input, _id: workId }, unchainedAPI) => {
|
|
55
|
-
const adapter = WorkerDirector.getAdapterByType(type);
|
|
56
|
-
if (!adapter) {
|
|
57
|
-
log(`WorkerDirector: No registered adapter for type: ${type}`);
|
|
58
|
-
}
|
|
59
|
-
try {
|
|
60
|
-
const output = await adapter.doWork(input, unchainedAPI, workId);
|
|
61
|
-
return output;
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
// DO not use this as flow control. The adapter should catch expected errors and return status: FAILED
|
|
65
|
-
log('DO not use this as flow control.', { level: LogLevel.Verbose });
|
|
66
|
-
log(`WorkerDirector -> Error doing work ${type}: ${error.message}`);
|
|
67
|
-
const errorOutput = { error, success: false };
|
|
68
|
-
return errorOutput;
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=WorkerDirector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerDirector.js","sourceRoot":"","sources":["../../src/director/WorkerDirector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerEventTypes.d.ts","sourceRoot":"","sources":["../../src/director/WorkerEventTypes.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,KAAK,eAAe;IACpB,SAAS,mBAAmB;IAC5B,QAAQ,kBAAkB;IAC1B,OAAO,iBAAiB;IACxB,WAAW,qBAAqB;CACjC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export var WorkerEventTypes;
|
|
2
|
-
(function (WorkerEventTypes) {
|
|
3
|
-
WorkerEventTypes["ADDED"] = "WORK_ADDED";
|
|
4
|
-
WorkerEventTypes["ALLOCATED"] = "WORK_ALLOCATED";
|
|
5
|
-
WorkerEventTypes["FINISHED"] = "WORK_FINISHED";
|
|
6
|
-
WorkerEventTypes["DELETED"] = "WORK_DELETED";
|
|
7
|
-
WorkerEventTypes["RESCHEDULED"] = "WORK_RESCHEDULED";
|
|
8
|
-
})(WorkerEventTypes || (WorkerEventTypes = {}));
|
|
9
|
-
// The difference between `done` and `finished` is, that work is `done` after
|
|
10
|
-
// it was computed (no DB write, could be external) and `finished` after
|
|
11
|
-
// the changes are written to the DB
|
|
12
|
-
//# sourceMappingURL=WorkerEventTypes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerEventTypes.js","sourceRoot":"","sources":["../../src/director/WorkerEventTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,wCAAoB,CAAA;IACpB,gDAA4B,CAAA;IAC5B,8CAA0B,CAAA;IAC1B,4CAAwB,CAAA;IACxB,oDAAgC,CAAA;AAClC,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAED,6EAA6E;AAC7E,wEAAwE;AACxE,oCAAoC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configureWorkerModule.d.ts","sourceRoot":"","sources":["../../src/module/configureWorkerModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configureWorkerModule.js","sourceRoot":"","sources":["../../src/module/configureWorkerModule.ts"],"names":[],"mappings":"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"}
|