@stamhoofd/queues 2.1.3 → 2.1.4

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.
@@ -0,0 +1,2 @@
1
+ export * from "./src/QueueHandler";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,6DAAkC"}
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" />
2
+ import { AsyncLocalStorage } from 'node:async_hooks';
3
+ declare class Queue {
4
+ name: string;
5
+ items: QueueItem<any>[];
6
+ parallel: number;
7
+ runCount: number;
8
+ constructor(name: string, parallel?: number);
9
+ addItem(item: QueueItem<any>): void;
10
+ }
11
+ declare class QueueItem<T> {
12
+ handler: () => Promise<T>;
13
+ resolve: (value: T) => void;
14
+ reject: (reason?: any) => void;
15
+ }
16
+ /**
17
+ * Force the usage of a queue to prevent concurrency issues
18
+ */
19
+ export declare class QueueHandler {
20
+ static queues: Map<string, Queue>;
21
+ static asyncLocalStorage: AsyncLocalStorage<string[]>;
22
+ static schedule<T>(queue: string, handler: () => Promise<T>, parallel?: number): Promise<T>;
23
+ private static runNext;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=QueueHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueHandler.d.ts","sourceRoot":"","sources":["../../src/QueueHandler.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,cAAM,KAAK;IACP,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAK;IAC5B,QAAQ,SAAI;IACZ,QAAQ,SAAI;gBAEA,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAI;IAKtC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;CAG/B;AAED,cAAM,SAAS,CAAC,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAA;IACzB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC3B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CACjC;AAED;;GAEG;AACH,qBAAa,YAAY;IACrB,MAAM,CAAC,MAAM,qBAA2B;IACxC,MAAM,CAAC,iBAAiB,8BAAqC;WAEhD,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,CAAC,CAAC;mBAuCvE,OAAO;CAoC/B"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueueHandler = void 0;
4
+ const node_async_hooks_1 = require("node:async_hooks");
5
+ class Queue {
6
+ constructor(name, parallel = 1) {
7
+ this.items = [];
8
+ this.parallel = 1;
9
+ this.runCount = 0;
10
+ this.name = name;
11
+ this.parallel = parallel;
12
+ }
13
+ addItem(item) {
14
+ this.items.push(item);
15
+ }
16
+ }
17
+ class QueueItem {
18
+ }
19
+ /**
20
+ * Force the usage of a queue to prevent concurrency issues
21
+ */
22
+ class QueueHandler {
23
+ static async schedule(queue, handler, parallel = 1) {
24
+ // console.log("[QUEUE] Schedule "+queue)
25
+ const currentQueues = this.asyncLocalStorage.getStore();
26
+ if (currentQueues !== undefined && currentQueues.includes(queue)) {
27
+ console.warn('Recursive usage of queues detected. Ignored running in queue', queue, currentQueues);
28
+ return await handler();
29
+ }
30
+ // We need to save the current AsyncLocalStorage context
31
+ // otherwise we could run items on the queue with the wrong context
32
+ const snapshot = node_async_hooks_1.AsyncLocalStorage.snapshot();
33
+ const item = new QueueItem();
34
+ item.handler = () => snapshot(async () => {
35
+ var _a;
36
+ const currentQueues = (_a = this.asyncLocalStorage.getStore()) !== null && _a !== void 0 ? _a : [];
37
+ return await this.asyncLocalStorage.run([...currentQueues, queue], async () => {
38
+ return await handler();
39
+ });
40
+ });
41
+ const promise = new Promise((resolve, reject) => {
42
+ var _a;
43
+ item.resolve = resolve;
44
+ item.reject = reject;
45
+ // We only add it here because resolve and reject is required
46
+ const q = (_a = this.queues.get(queue)) !== null && _a !== void 0 ? _a : new Queue(queue, parallel);
47
+ q.addItem(item);
48
+ this.queues.set(queue, q);
49
+ // Run the next item if not already running
50
+ this.runNext(queue).catch(e => {
51
+ console.error("[QUEUE] Fatal error in queue logic", e);
52
+ });
53
+ });
54
+ return promise;
55
+ }
56
+ static async runNext(queue) {
57
+ const q = this.queues.get(queue);
58
+ if (!q) {
59
+ // console.warn("[QUEUE] Queue not found (no items left)", queue)
60
+ return;
61
+ }
62
+ if (q.runCount >= q.parallel) {
63
+ // console.log("[QUEUE] Queue", queue, 'reached maximum of', q.parallel)
64
+ return;
65
+ }
66
+ const next = q.items.shift();
67
+ if (next === undefined) {
68
+ this.queues.delete(queue);
69
+ return;
70
+ }
71
+ q.runCount += 1;
72
+ // console.log("[QUEUE] ("+q.runCount+"/"+q.parallel+") Executing "+queue+" ("+q.items.length+" remaining)")
73
+ try {
74
+ next.resolve(await next.handler());
75
+ // console.log("[QUEUE] ("+(q.runCount-1)+"/"+q.parallel+") Resolved "+queue+" ("+q.items.length+" remaining)")
76
+ }
77
+ catch (e) {
78
+ next.reject(e);
79
+ if (STAMHOOFD.environment !== 'test') {
80
+ console.log("[QUEUE] (" + (q.runCount - 1) + "/" + q.parallel + ") Rejected " + queue + " (" + q.items.length + " remaining)");
81
+ console.error(e);
82
+ }
83
+ }
84
+ q.runCount -= 1;
85
+ await this.runNext(queue);
86
+ }
87
+ }
88
+ exports.QueueHandler = QueueHandler;
89
+ QueueHandler.queues = new Map();
90
+ QueueHandler.asyncLocalStorage = new node_async_hooks_1.AsyncLocalStorage();
91
+ //# sourceMappingURL=QueueHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueHandler.js","sourceRoot":"","sources":["../../src/QueueHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=QueueHandler.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueHandler.test.d.ts","sourceRoot":"","sources":["../../src/QueueHandler.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_async_hooks_1 = require("node:async_hooks");
4
+ const QueueHandler_1 = require("./QueueHandler");
5
+ describe('QueueHandler', () => {
6
+ it('Guards against deadlocks', async () => {
7
+ const result = await QueueHandler_1.QueueHandler.schedule('test', async () => {
8
+ return QueueHandler_1.QueueHandler.schedule('test', async () => {
9
+ return 'test';
10
+ });
11
+ });
12
+ expect(result).toBe('test');
13
+ });
14
+ it('Guards against deep deadlocks', async () => {
15
+ const result = await QueueHandler_1.QueueHandler.schedule('test', async () => {
16
+ return QueueHandler_1.QueueHandler.schedule('other', async () => {
17
+ return QueueHandler_1.QueueHandler.schedule('test', async () => {
18
+ return QueueHandler_1.QueueHandler.schedule('other', async () => {
19
+ return QueueHandler_1.QueueHandler.schedule('test', async () => {
20
+ return 'test';
21
+ });
22
+ });
23
+ });
24
+ });
25
+ });
26
+ expect(result).toBe('test');
27
+ });
28
+ it('Inherits the right AsyncLocalStorage context', async () => {
29
+ const context = new node_async_hooks_1.AsyncLocalStorage();
30
+ const ranContexts = [];
31
+ const promises = [];
32
+ // Do some quick scheduling
33
+ for (let i = 0; i < 20; i++) {
34
+ context.run(i.toString(), async () => {
35
+ promises.push(QueueHandler_1.QueueHandler.schedule('test', async () => {
36
+ var _a;
37
+ await new Promise(resolve => {
38
+ setTimeout(() => {
39
+ resolve();
40
+ }, 100);
41
+ });
42
+ ranContexts.push((_a = context.getStore()) !== null && _a !== void 0 ? _a : '');
43
+ }));
44
+ });
45
+ }
46
+ await Promise.allSettled(promises);
47
+ expect(ranContexts).toHaveLength(20);
48
+ expect(ranContexts.sort()).toEqual(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19'].sort());
49
+ });
50
+ it('Inherits the right AsyncLocalStorage context with parallel execution', async () => {
51
+ const context = new node_async_hooks_1.AsyncLocalStorage();
52
+ const ranContexts = [];
53
+ const promises = [];
54
+ // Do some quick scheduling
55
+ for (let i = 0; i < 50; i++) {
56
+ context.run(i.toString(), async () => {
57
+ promises.push(QueueHandler_1.QueueHandler.schedule('test', async () => {
58
+ var _a;
59
+ await new Promise(resolve => {
60
+ setTimeout(() => {
61
+ resolve();
62
+ }, 100);
63
+ });
64
+ ranContexts.push((_a = context.getStore()) !== null && _a !== void 0 ? _a : '');
65
+ }, 5));
66
+ });
67
+ }
68
+ await Promise.allSettled(promises);
69
+ expect(ranContexts).toHaveLength(50);
70
+ expect(ranContexts.sort()).toEqual(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49'].sort());
71
+ });
72
+ });
73
+ //# sourceMappingURL=QueueHandler.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueueHandler.test.js","sourceRoot":"","sources":["../../src/QueueHandler.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@stamhoofd/queues",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "license": "UNLICENCED",
7
7
  "sideEffects": false,
8
8
  "files": [
9
- "src"
9
+ "src",
10
+ "dist"
10
11
  ],
11
12
  "scripts": {
12
13
  "build": "tsc -b",
@@ -14,5 +15,5 @@
14
15
  "test": "jest --runInBand",
15
16
  "test:reset": "yarn build:full && jest --runInBand"
16
17
  },
17
- "gitHead": "b5773c547dceaae52b9c2a098b222417fcd42e4f"
18
+ "gitHead": "22be7c0740ce4705470d6fc79b5a50ccccabad9d"
18
19
  }