@unchainedshop/core-worker 4.3.4 → 4.5.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 +12 -11
- package/lib/module/configureWorkerModule.js +19 -28
- package/lib/worker-index.d.ts +2 -3
- package/lib/worker-index.js +2 -3
- package/package.json +11 -9
- package/lib/db/WorkQueueCollection.d.ts.map +0 -1
- package/lib/db/WorkQueueCollection.js.map +0 -1
- package/lib/module/configureWorkerModule.d.ts.map +0 -1
- package/lib/module/configureWorkerModule.js.map +0 -1
- package/lib/worker-index.d.ts.map +0 -1
- package/lib/worker-index.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
|
}
|
|
@@ -106,6 +107,7 @@ export declare const configureWorkerModule: ({ db, options }: ModuleInput<Worker
|
|
|
106
107
|
}) => Promise<boolean>;
|
|
107
108
|
status: (work: Work) => WorkStatus;
|
|
108
109
|
addWork({ type, input, priority, scheduled, originalWorkId, worker, retries, }: Pick<Work, "type" | "originalWorkId" | "worker"> & Pick<Partial<Work>, "scheduled" | "priority" | "input" | "retries">): Promise<Work>;
|
|
110
|
+
addWorkIfNotExists(workData: Pick<Work, "type"> & Pick<Partial<Work>, "scheduled" | "priority" | "input" | "retries">, existenceCheck: (work: Work) => boolean): Promise<Work | null>;
|
|
109
111
|
rescheduleWork: (currentWork: Work, scheduled: Date) => Promise<mongodb.WithId<Work> | null>;
|
|
110
112
|
allocateWork: ({ types, worker, }: {
|
|
111
113
|
types: string[];
|
|
@@ -134,4 +136,3 @@ export declare const configureWorkerModule: ({ db, options }: ModuleInput<Worker
|
|
|
134
136
|
}) => Promise<WorkerReport[]>;
|
|
135
137
|
}>;
|
|
136
138
|
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({
|
|
@@ -264,6 +257,16 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
264
257
|
emit(WorkerEventTypes.ADDED, removePrivateFields(work));
|
|
265
258
|
return work;
|
|
266
259
|
},
|
|
260
|
+
async addWorkIfNotExists(workData, existenceCheck) {
|
|
261
|
+
const workItems = await WorkQueue.find(buildQuerySelector({
|
|
262
|
+
types: [workData.type],
|
|
263
|
+
status: [WorkStatus.NEW, WorkStatus.ALLOCATED],
|
|
264
|
+
})).toArray();
|
|
265
|
+
const existingWork = workItems.find(existenceCheck);
|
|
266
|
+
if (existingWork)
|
|
267
|
+
return null;
|
|
268
|
+
return this.addWork(workData);
|
|
269
|
+
},
|
|
267
270
|
rescheduleWork: async (currentWork, scheduled) => {
|
|
268
271
|
const work = await WorkQueue.findOneAndUpdate(generateDbFilterById(currentWork._id), {
|
|
269
272
|
$set: {
|
|
@@ -341,13 +344,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
341
344
|
return result.value;
|
|
342
345
|
}
|
|
343
346
|
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
347
|
return null;
|
|
352
348
|
}
|
|
353
349
|
},
|
|
@@ -373,7 +369,7 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
373
369
|
const workQueue = await WorkQueue.find(buildQuerySelector({
|
|
374
370
|
status: [WorkStatus.ALLOCATED],
|
|
375
371
|
started: { $lte: referenceDate },
|
|
376
|
-
worker: { $in: [worker, '', null] },
|
|
372
|
+
worker: { $in: [worker, '', null] },
|
|
377
373
|
type: { $in: types },
|
|
378
374
|
}), { projection: { _id: true }, sort: { test: 1 } }).toArray();
|
|
379
375
|
return (await Promise.all(workQueue.map(({ _id }) => finishWork(_id, {
|
|
@@ -390,9 +386,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
390
386
|
getReport: async ({ types, dateRange, }) => {
|
|
391
387
|
const pipeline = [];
|
|
392
388
|
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
389
|
if (dateRange?.start || dateRange?.end) {
|
|
397
390
|
const dateConditions = [];
|
|
398
391
|
if (dateRange?.start) {
|
|
@@ -411,7 +404,6 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
411
404
|
matchConditions.push({ $and: dateConditions });
|
|
412
405
|
}
|
|
413
406
|
}
|
|
414
|
-
// build types filter if type is provided or ignore types if it is not provided
|
|
415
407
|
if (types && Array.isArray(types) && types.length) {
|
|
416
408
|
matchConditions.push({ type: { $in: types } });
|
|
417
409
|
}
|
|
@@ -460,4 +452,3 @@ export const configureWorkerModule = async ({ db, options }) => {
|
|
|
460
452
|
},
|
|
461
453
|
};
|
|
462
454
|
};
|
|
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,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/core-worker",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"main": "lib/worker-index.js",
|
|
5
5
|
"types": "lib/worker-index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
7
8
|
"scripts": {
|
|
8
9
|
"clean": "tsc -b --clean",
|
|
9
10
|
"build": "tsc -b",
|
|
10
11
|
"prepublishOnly": "npm run clean && npm run build",
|
|
11
12
|
"watch": "tsc -w",
|
|
12
|
-
"test": "
|
|
13
|
-
"test:watch": "
|
|
13
|
+
"test": "node --test",
|
|
14
|
+
"test:watch": "node --test --watch"
|
|
14
15
|
},
|
|
15
16
|
"repository": {
|
|
16
17
|
"type": "git",
|
|
@@ -22,8 +23,10 @@
|
|
|
22
23
|
"core"
|
|
23
24
|
],
|
|
24
25
|
"authors": [
|
|
25
|
-
"
|
|
26
|
-
"
|
|
26
|
+
"Pascal Kaufmann",
|
|
27
|
+
"Mikael Araya",
|
|
28
|
+
"Vedran Rudelj",
|
|
29
|
+
"Joël Meiller"
|
|
27
30
|
],
|
|
28
31
|
"license": "EUPL-1.2",
|
|
29
32
|
"bugs": {
|
|
@@ -31,12 +34,11 @@
|
|
|
31
34
|
},
|
|
32
35
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
33
36
|
"dependencies": {
|
|
34
|
-
"@unchainedshop/logger": "^4.
|
|
35
|
-
"@unchainedshop/utils": "^4.
|
|
37
|
+
"@unchainedshop/logger": "^4.5.0",
|
|
38
|
+
"@unchainedshop/utils": "^4.5.0"
|
|
36
39
|
},
|
|
37
40
|
"devDependencies": {
|
|
38
|
-
"@types/node": "^
|
|
39
|
-
"tsx": "^4.20.3",
|
|
41
|
+
"@types/node": "^25.0.0",
|
|
40
42
|
"typescript": "^5.8.3"
|
|
41
43
|
}
|
|
42
44
|
}
|
|
@@ -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":"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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-index.d.ts","sourceRoot":"","sources":["../src/worker-index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAE5C,cAAc,mCAAmC,CAAC"}
|
package/lib/worker-index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-index.js","sourceRoot":"","sources":["../src/worker-index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAE5C,cAAc,mCAAmC,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { isDocumentDBCompatModeEnabled, TimestampFields } from '@unchainedshop/mongodb';
|
|
2
|
-
import { mongodb, buildDbIndexes } from '@unchainedshop/mongodb';
|
|
3
|
-
|
|
4
|
-
const ONE_DAY_IN_SECONDS = 86400;
|
|
5
|
-
|
|
6
|
-
export enum WorkStatus {
|
|
7
|
-
NEW = 'NEW',
|
|
8
|
-
ALLOCATED = 'ALLOCATED',
|
|
9
|
-
SUCCESS = 'SUCCESS',
|
|
10
|
-
FAILED = 'FAILED',
|
|
11
|
-
DELETED = 'DELETED',
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export type Work = {
|
|
15
|
-
_id: string;
|
|
16
|
-
priority: number;
|
|
17
|
-
retries: number;
|
|
18
|
-
scheduled: Date;
|
|
19
|
-
type: string;
|
|
20
|
-
input: Record<string, any>;
|
|
21
|
-
error?: any;
|
|
22
|
-
finished?: Date;
|
|
23
|
-
originalWorkId?: string;
|
|
24
|
-
result?: any;
|
|
25
|
-
started?: Date;
|
|
26
|
-
success?: boolean;
|
|
27
|
-
timeout?: number;
|
|
28
|
-
worker?: string | null;
|
|
29
|
-
autoscheduled?: boolean;
|
|
30
|
-
scheduleId?: string;
|
|
31
|
-
} & TimestampFields;
|
|
32
|
-
|
|
33
|
-
export const WorkQueueCollection = async (db: mongodb.Db) => {
|
|
34
|
-
const WorkQueue = db.collection<Work>('work_queue');
|
|
35
|
-
|
|
36
|
-
if (!isDocumentDBCompatModeEnabled()) {
|
|
37
|
-
await buildDbIndexes<Work>(WorkQueue, [
|
|
38
|
-
{
|
|
39
|
-
index: { originalWorkId: 'text', _id: 'text', worker: 'text', input: 'text', type: 'text' },
|
|
40
|
-
options: {
|
|
41
|
-
weights: {
|
|
42
|
-
_id: 8,
|
|
43
|
-
originalWorkId: 6,
|
|
44
|
-
type: 5,
|
|
45
|
-
worker: 4,
|
|
46
|
-
input: 2,
|
|
47
|
-
},
|
|
48
|
-
name: 'workqueue_fulltext_search',
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
]);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
await buildDbIndexes<Work>(WorkQueue, [
|
|
55
|
-
{
|
|
56
|
-
index: { created: -1 },
|
|
57
|
-
options: { expireAfterSeconds: 30 * ONE_DAY_IN_SECONDS },
|
|
58
|
-
},
|
|
59
|
-
{ index: { started: -1 } },
|
|
60
|
-
{ index: { finished: 1 } },
|
|
61
|
-
{ index: { scheduled: 1 } },
|
|
62
|
-
{ index: { priority: -1 } },
|
|
63
|
-
{ index: { type: 1 } },
|
|
64
|
-
{ index: { originalWorkId: 1 } },
|
|
65
|
-
]);
|
|
66
|
-
|
|
67
|
-
return WorkQueue;
|
|
68
|
-
};
|