@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 CHANGED
@@ -1,9 +1,109 @@
1
- # Worker (Unchained Engine)
1
+ [![npm version](https://img.shields.io/npm/v/@unchainedshop/core-worker.svg)](https://npmjs.com/package/@unchainedshop/core-worker)
2
+ [![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](https://opensource.org/licenses/EUPL-1.2)
2
3
 
3
- This is a simple implementation of a worker queue and workers as plugins.
4
+ # @unchainedshop/core-worker
4
5
 
5
- Plugins are linked to jobs by the `type`.
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
- ## Explanations
8
+ ## Installation
8
9
 
9
- - It is the plugins responsibility to handle the retries.
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 enum WorkStatus {
4
- NEW = "NEW",
5
- ALLOCATED = "ALLOCATED",
6
- SUCCESS = "SUCCESS",
7
- FAILED = "FAILED",
8
- DELETED = "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 var WorkStatus;
5
- (function (WorkStatus) {
6
- WorkStatus["NEW"] = "NEW";
7
- WorkStatus["ALLOCATED"] = "ALLOCATED";
8
- WorkStatus["SUCCESS"] = "SUCCESS";
9
- WorkStatus["FAILED"] = "FAILED";
10
- WorkStatus["DELETED"] = "DELETED";
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.js';
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 enum WorkerEventTypes {
12
- ADDED = "WORK_ADDED",
13
- ALLOCATED = "WORK_ALLOCATED",
14
- FINISHED = "WORK_FINISHED",
15
- DELETED = "WORK_DELETED",
16
- RESCHEDULED = "WORK_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 '../db/WorkQueueCollection.js';
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 var WorkerEventTypes;
11
- (function (WorkerEventTypes) {
12
- WorkerEventTypes["ADDED"] = "WORK_ADDED";
13
- WorkerEventTypes["ALLOCATED"] = "WORK_ALLOCATED";
14
- WorkerEventTypes["FINISHED"] = "WORK_FINISHED";
15
- WorkerEventTypes["DELETED"] = "WORK_DELETED";
16
- WorkerEventTypes["RESCHEDULED"] = "WORK_RESCHEDULED";
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] }, // Don't mark work failed of other workers!
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
@@ -1,3 +1,2 @@
1
- export * from './db/WorkQueueCollection.js';
2
- export * from './module/configureWorkerModule.js';
3
- //# sourceMappingURL=worker-index.d.ts.map
1
+ export * from './db/WorkQueueCollection.ts';
2
+ export * from './module/configureWorkerModule.ts';
@@ -1,3 +1,2 @@
1
- export * from './db/WorkQueueCollection.js';
2
- export * from './module/configureWorkerModule.js';
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.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": "tsx --test",
13
- "test:watch": "tsx --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
- "Joël Meiller",
26
- "Pascal Kaufmann"
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.3.0",
35
- "@unchainedshop/utils": "^4.3.0"
37
+ "@unchainedshop/logger": "^4.5.0",
38
+ "@unchainedshop/utils": "^4.5.0"
36
39
  },
37
40
  "devDependencies": {
38
- "@types/node": "^24.0.13",
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"}
@@ -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
- };