itrm-tools 1.3.28 → 1.3.30
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,14 +1,16 @@
|
|
|
1
1
|
export interface IQueueItem {
|
|
2
|
-
attempt
|
|
2
|
+
attempt?: number;
|
|
3
|
+
timestamp?: number;
|
|
3
4
|
[key: string]: any;
|
|
4
5
|
}
|
|
5
6
|
export declare abstract class QueueManager<T extends IQueueItem> {
|
|
6
7
|
private readonly queue;
|
|
7
8
|
private readonly maxAttempts;
|
|
9
|
+
private readonly retryDelayMs;
|
|
8
10
|
private running;
|
|
9
|
-
constructor(maxAttempts?: number);
|
|
11
|
+
constructor(maxAttempts?: number, retryDelayMs?: number);
|
|
10
12
|
push(item: T): void;
|
|
11
13
|
private run;
|
|
12
|
-
protected abstract
|
|
14
|
+
protected abstract apply(item: T): Promise<void>;
|
|
13
15
|
protected abstract onMaxRetriesReached(item: T, error: any): Promise<void>;
|
|
14
16
|
}
|
|
@@ -4,16 +4,19 @@ exports.QueueManager = void 0;
|
|
|
4
4
|
class QueueManager {
|
|
5
5
|
queue;
|
|
6
6
|
maxAttempts;
|
|
7
|
+
retryDelayMs;
|
|
7
8
|
running;
|
|
8
|
-
constructor(maxAttempts) {
|
|
9
|
+
constructor(maxAttempts, retryDelayMs) {
|
|
9
10
|
this.queue = [];
|
|
10
11
|
this.running = false;
|
|
11
12
|
this.maxAttempts = maxAttempts ?? 3;
|
|
13
|
+
this.retryDelayMs = retryDelayMs ?? 1000;
|
|
12
14
|
}
|
|
13
15
|
push(item) {
|
|
14
|
-
if (item.attempt === undefined)
|
|
16
|
+
if (item.attempt === undefined)
|
|
15
17
|
item.attempt = 0;
|
|
16
|
-
|
|
18
|
+
if (item.timestamp === undefined)
|
|
19
|
+
item.timestamp = Date.now();
|
|
17
20
|
this.queue.push(item);
|
|
18
21
|
if (!this.running) {
|
|
19
22
|
this.run();
|
|
@@ -23,13 +26,22 @@ class QueueManager {
|
|
|
23
26
|
this.running = true;
|
|
24
27
|
while (this.queue.length > 0) {
|
|
25
28
|
const item = this.queue.shift();
|
|
29
|
+
if (item.attempt > 0) {
|
|
30
|
+
const elapsedTime = Date.now() - item.timestamp;
|
|
31
|
+
const waitTime = this.retryDelayMs - elapsedTime;
|
|
32
|
+
if (waitTime > 0) {
|
|
33
|
+
this.queue.unshift(item);
|
|
34
|
+
await new Promise(resolve => setTimeout(resolve, waitTime));
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
26
38
|
try {
|
|
27
|
-
await this.
|
|
39
|
+
await this.apply(item);
|
|
28
40
|
}
|
|
29
41
|
catch (error) {
|
|
30
42
|
console.error(`[Queue] Error processing item: ${error.message}`);
|
|
31
43
|
if (item.attempt < this.maxAttempts) {
|
|
32
|
-
this.queue.push({ ...item, attempt: item.attempt + 1 });
|
|
44
|
+
this.queue.push({ ...item, attempt: item.attempt + 1, timestamp: Date.now() });
|
|
33
45
|
}
|
|
34
46
|
else {
|
|
35
47
|
await this.onMaxRetriesReached(item, error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueManager.js","sourceRoot":"","sources":["../../../src/api/queue/QueueManager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"QueueManager.js","sourceRoot":"","sources":["../../../src/api/queue/QueueManager.ts"],"names":[],"mappings":";;;AAMA,MAAsB,YAAY;IACf,KAAK,CAAM;IACX,WAAW,CAAS;IACpB,YAAY,CAAS;IAC9B,OAAO,CAAU;IAEzB,YAAY,WAAoB,EAAE,YAAqB;QACrD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;IAC3C,CAAC;IAEM,IAAI,CAAC,IAAO;QACjB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE9D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAO,CAAC;YAErC,IAAI,IAAI,CAAC,OAAQ,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAU,CAAC;gBACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;gBAEjD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC5D,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,IAAI,IAAI,CAAC,OAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAQ,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;CAKF;AA3DD,oCA2DC"}
|
|
@@ -10,8 +10,13 @@ class CrudServiceManager {
|
|
|
10
10
|
return item;
|
|
11
11
|
}
|
|
12
12
|
extractItem(response, index = 0) {
|
|
13
|
-
if (this.isValidArrayPayload(response))
|
|
14
|
-
|
|
13
|
+
if (this.isValidArrayPayload(response)) {
|
|
14
|
+
const item = response.payload[index];
|
|
15
|
+
if (Array.isArray(item) && item.length > 0) {
|
|
16
|
+
return item[0];
|
|
17
|
+
}
|
|
18
|
+
return item;
|
|
19
|
+
}
|
|
15
20
|
return undefined;
|
|
16
21
|
}
|
|
17
22
|
extractItems(response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudServiceManager.js","sourceRoot":"","sources":["../../../../src/api/request/crud/CrudServiceManager.ts"],"names":[],"mappings":";;;AAEA,0DAAuD;AAQvD,MAAsB,kBAAkB;IAC7B,KAAK,CAAC,YAAY,CAAC,OAAU;QAChC,IAAI,IAAI,GAAQ,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI;YACL,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,WAAW,CAAC,QAA0B,EAAE,QAAgB,CAAC;QAC/D,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"CrudServiceManager.js","sourceRoot":"","sources":["../../../../src/api/request/crud/CrudServiceManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "itrm-tools",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.30",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@types/cookie-parser": "^1.4.10",
|
|
37
37
|
"@types/cors": "^2.8.19",
|
|
38
38
|
"@types/crypto-js": "^4.2.2",
|
|
39
|
-
"@types/express": "^5.0.
|
|
39
|
+
"@types/express": "^5.0.6",
|
|
40
40
|
"@types/jest": "^30.0.0",
|
|
41
41
|
"@types/jsrsasign": "^10.5.15",
|
|
42
42
|
"@types/morgan": "^1.9.10",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"redis": "^5.10.0",
|
|
54
54
|
"rimraf": "^6.1.2",
|
|
55
55
|
"sqlite3": "^5.1.7",
|
|
56
|
-
"ts-jest": "^29.4.
|
|
56
|
+
"ts-jest": "^29.4.6",
|
|
57
57
|
"typescript": "^5.9.3"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
@@ -64,9 +64,9 @@
|
|
|
64
64
|
"cookie-parser": "^1.4.7",
|
|
65
65
|
"cors": "^2.8.5",
|
|
66
66
|
"crypto-js": "^4.2.0",
|
|
67
|
-
"express": "^5.1
|
|
67
|
+
"express": "^5.2.1",
|
|
68
68
|
"https": "^1.0.0",
|
|
69
|
-
"jose": "^6.1.
|
|
69
|
+
"jose": "^6.1.3",
|
|
70
70
|
"jsrsasign": "^11.1.0",
|
|
71
71
|
"mongoose": "^8.20.1",
|
|
72
72
|
"morgan": "^1.10.0",
|