@memberjunction/queue 5.14.0 → 5.16.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.
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TaskBase, QueueBase } from "./QueueBase.js";
|
|
2
2
|
import { UserInfo } from "@memberjunction/core";
|
|
3
3
|
import { MJQueueTypeEntity } from "@memberjunction/core-entities";
|
|
4
|
+
import { BaseSingleton } from "@memberjunction/global";
|
|
4
5
|
/**
|
|
5
6
|
*QueueManager class is a generic manager of all active queues for the process.
|
|
6
7
|
*
|
|
@@ -14,11 +15,9 @@ import { MJQueueTypeEntity } from "@memberjunction/core-entities";
|
|
|
14
15
|
*information. Heartbeat information is used to determine if a queue has crashed or not by other processes
|
|
15
16
|
*or not. After a heartbeat timeout is reached, other queues can pick up tasks from a crashed process.
|
|
16
17
|
*/
|
|
17
|
-
export declare class QueueManager {
|
|
18
|
+
export declare class QueueManager extends BaseSingleton<QueueManager> {
|
|
18
19
|
private _queueTypes;
|
|
19
20
|
private _queues;
|
|
20
|
-
private static _instance;
|
|
21
|
-
private static _globalInstanceKey;
|
|
22
21
|
static get QueueTypes(): MJQueueTypeEntity[];
|
|
23
22
|
static get Instance(): QueueManager;
|
|
24
23
|
private configPromise;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueManager.d.ts","sourceRoot":"","sources":["../../src/generic/QueueManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAA+B,QAAQ,EAAc,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAoC,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"QueueManager.d.ts","sourceRoot":"","sources":["../../src/generic/QueueManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAA+B,QAAQ,EAAc,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAoC,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAAwB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG7E;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC3D,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,OAAO,CAAmB;IAElC,WAAkB,UAAU,IAAI,iBAAiB,EAAE,CAElD;IAED,WAAkB,QAAQ,IAAI,YAAY,CAEzC;IAED,OAAO,CAAC,aAAa,CAA8B;IACtC,MAAM,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;WAcrC,MAAM,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAIhD,cAAc,CAAC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;;WAahD,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAShH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAqCxH,OAAO,CAAC,qBAAqB,CAAyC;cAEtD,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;cA0BrG,WAAW,CAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IAiDvH,SAAS,KAAK,MAAM,IAAI,SAAS,EAAE,CAElC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//import { MJQueueEntity, MJQueueTaskEntity, MJQueueTypeEntity } from "mj_generatedentities";
|
|
2
2
|
import { TaskBase, QueueBase } from "./QueueBase.js";
|
|
3
3
|
import { LogError, Metadata, RunView } from "@memberjunction/core";
|
|
4
|
-
import { MJGlobal, UUIDsEqual } from "@memberjunction/global";
|
|
4
|
+
import { MJGlobal, UUIDsEqual, BaseSingleton } from "@memberjunction/global";
|
|
5
5
|
import os from 'os';
|
|
6
6
|
/**
|
|
7
7
|
*QueueManager class is a generic manager of all active queues for the process.
|
|
@@ -16,16 +16,12 @@ import os from 'os';
|
|
|
16
16
|
*information. Heartbeat information is used to determine if a queue has crashed or not by other processes
|
|
17
17
|
*or not. After a heartbeat timeout is reached, other queues can pick up tasks from a crashed process.
|
|
18
18
|
*/
|
|
19
|
-
export class QueueManager {
|
|
20
|
-
static { this._instance = null; }
|
|
21
|
-
static { this._globalInstanceKey = '__mj_queue_manager_instance__'; }
|
|
19
|
+
export class QueueManager extends BaseSingleton {
|
|
22
20
|
static get QueueTypes() {
|
|
23
21
|
return QueueManager.Instance._queueTypes;
|
|
24
22
|
}
|
|
25
23
|
static get Instance() {
|
|
26
|
-
|
|
27
|
-
QueueManager._instance = new QueueManager();
|
|
28
|
-
return QueueManager._instance;
|
|
24
|
+
return QueueManager.getInstance();
|
|
29
25
|
}
|
|
30
26
|
async Config(contextUser) {
|
|
31
27
|
if (this._queueTypes.length === 0) {
|
|
@@ -52,25 +48,12 @@ export class QueueManager {
|
|
|
52
48
|
QueueManager.Instance._queueTypes = queueTypes.Results;
|
|
53
49
|
}
|
|
54
50
|
constructor() {
|
|
51
|
+
super();
|
|
55
52
|
this._queueTypes = [];
|
|
56
53
|
this._queues = [];
|
|
57
54
|
this.configPromise = null;
|
|
58
55
|
// Initialize a map to hold ongoing queue creation promises
|
|
59
56
|
this.ongoingQueueCreations = new Map();
|
|
60
|
-
if (QueueManager._instance === null) {
|
|
61
|
-
// check the global object first to see if we have an instance there since multiple modules might load this code
|
|
62
|
-
// and the static instance colud be different for each module based on JS import paths
|
|
63
|
-
const g = MJGlobal.Instance.GetGlobalObjectStore();
|
|
64
|
-
if (g && g[QueueManager._globalInstanceKey]) {
|
|
65
|
-
QueueManager._instance = g[QueueManager._globalInstanceKey];
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
if (g)
|
|
69
|
-
g[QueueManager._globalInstanceKey] = this; // save the instance to the global object store if we have a global object store
|
|
70
|
-
QueueManager._instance = this; // and save our new instance to the static member for future use
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return QueueManager._instance;
|
|
74
57
|
}
|
|
75
58
|
static async AddTask(QueueType, data, options, contextUser) {
|
|
76
59
|
await QueueManager.Config(contextUser);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueManager.js","sourceRoot":"","sources":["../../src/generic/QueueManager.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAwB,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"QueueManager.js","sourceRoot":"","sources":["../../src/generic/QueueManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/queue",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.16.0",
|
|
5
5
|
"description": "MemberJunction: Queue Library for managing server side queues",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"typescript": "^5.9.3"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@memberjunction/ai": "5.
|
|
24
|
-
"@memberjunction/ai-provider-bundle": "5.
|
|
25
|
-
"@memberjunction/aiengine": "5.
|
|
26
|
-
"@memberjunction/core": "5.
|
|
27
|
-
"@memberjunction/global": "5.
|
|
28
|
-
"@memberjunction/core-entities": "5.
|
|
23
|
+
"@memberjunction/ai": "5.16.0",
|
|
24
|
+
"@memberjunction/ai-provider-bundle": "5.16.0",
|
|
25
|
+
"@memberjunction/aiengine": "5.16.0",
|
|
26
|
+
"@memberjunction/core": "5.16.0",
|
|
27
|
+
"@memberjunction/global": "5.16.0",
|
|
28
|
+
"@memberjunction/core-entities": "5.16.0",
|
|
29
29
|
"@types/uuid": "^11.0.0",
|
|
30
30
|
"uuid": "^13.0.0"
|
|
31
31
|
},
|