@wikicasa-dev/node-common 2.5.1 → 3.1.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/dist/examples/callpool-demo.js +49 -9
- package/dist/examples/callpool-demo.js.map +1 -1
- package/dist/src/CallPool.d.ts +27 -9
- package/dist/src/CallPool.js +117 -96
- package/dist/src/CallPool.js.map +1 -1
- package/dist/src/utils.js +12 -4
- package/dist/src/utils.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
import { CallPool, PROXY } from "../src/CallPool.js";
|
|
2
2
|
import { Console, COLORS } from "../src/Console.js";
|
|
3
3
|
async function demoCallPool() {
|
|
4
|
-
const pool = new CallPool(
|
|
4
|
+
const pool = new CallPool({
|
|
5
|
+
name: "demo",
|
|
6
|
+
proxy: PROXY.NONE,
|
|
7
|
+
minConcurrency: 1,
|
|
8
|
+
maxConcurrency: 100,
|
|
9
|
+
limitCall: 30,
|
|
10
|
+
limitInterval: 60000,
|
|
11
|
+
retry: {
|
|
12
|
+
attempts: 1,
|
|
13
|
+
delayMs: 2000,
|
|
14
|
+
shouldRetry: (error) => {
|
|
15
|
+
// Simuliamo che alcuni errori sono recuperabili e altri no
|
|
16
|
+
return error.message.includes("RETRY");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
5
20
|
Console.appendSummaryLine(() => pool.print(), COLORS.YELLOW, "pool_status");
|
|
6
|
-
// Funzione che simula una chiamata API con timeout casuale
|
|
21
|
+
// Funzione che simula una chiamata API con timeout casuale e diversi tipi di errori
|
|
7
22
|
const simulateApiCall = (id) => {
|
|
8
23
|
return new Promise((resolve, reject) => {
|
|
9
24
|
const delay = Math.random() * 4000 + 1100; // Ritardo casuale tra 1-5 secondi
|
|
10
|
-
const
|
|
25
|
+
const scenario = Math.random();
|
|
11
26
|
setTimeout(() => {
|
|
12
|
-
if (
|
|
13
|
-
resolve(`✨ Operazione ${id} completata in ${(delay / 1000).toFixed(1)}s`);
|
|
27
|
+
if (scenario > 0.000001) {
|
|
28
|
+
resolve(`✨ Operazione ${id} completata con successo in ${(delay / 1000).toFixed(1)}s`);
|
|
29
|
+
}
|
|
30
|
+
else if (scenario > 0.2) {
|
|
31
|
+
// Errore recuperabile (con RETRY nel messaggio)
|
|
32
|
+
reject(new Error(`RETRY: Errore temporaneo per operazione ${id} dopo ${(delay / 1000).toFixed(1)}s`));
|
|
14
33
|
}
|
|
15
34
|
else {
|
|
16
|
-
|
|
35
|
+
// Errore non recuperabile
|
|
36
|
+
reject(new Error(`FATAL: Errore permanente per operazione ${id} dopo ${(delay / 1000).toFixed(1)}s`));
|
|
17
37
|
}
|
|
18
38
|
}, delay);
|
|
19
39
|
});
|
|
20
40
|
};
|
|
21
|
-
// Creiamo
|
|
22
|
-
const operations = Array.from({ length:
|
|
41
|
+
// Creiamo 50 operazioni simulate
|
|
42
|
+
const operations = Array.from({ length: 50 }, (_, i) => i + 1);
|
|
43
|
+
Console.log("\n🚀 Avvio operazioni batch con retry...");
|
|
44
|
+
const time = performance.now();
|
|
23
45
|
// Aggiungiamo le operazioni al pool usando enqueue
|
|
24
46
|
const promises = operations.map(id => {
|
|
25
47
|
return pool.enqueue(() => simulateApiCall(id))
|
|
@@ -28,18 +50,32 @@ async function demoCallPool() {
|
|
|
28
50
|
return result;
|
|
29
51
|
})
|
|
30
52
|
.catch(error => {
|
|
31
|
-
|
|
53
|
+
const retryInfo = error.message.includes("RETRY") ?
|
|
54
|
+
" (dopo tutti i tentativi di retry)" :
|
|
55
|
+
" (errore non recuperabile)";
|
|
56
|
+
Console.error(`💥 ${error.message}${retryInfo}`);
|
|
32
57
|
throw error;
|
|
33
58
|
});
|
|
34
59
|
});
|
|
35
60
|
try {
|
|
36
61
|
await Promise.allSettled(promises);
|
|
37
62
|
Console.success("\n🎉 Demo completata! Tutte le operazioni sono state processate.");
|
|
63
|
+
// Stampiamo alcune statistiche
|
|
64
|
+
const results = await Promise.allSettled(promises);
|
|
65
|
+
const succeeded = results.filter(r => r.status === "fulfilled").length;
|
|
66
|
+
const failed = results.filter(r => r.status === "rejected").length;
|
|
67
|
+
Console.log("\n📊 Statistiche finali:");
|
|
68
|
+
Console.log(`🕒 Tempo di esecuzione: ${((performance.now() - time) / 1000).toFixed(1)}s`);
|
|
69
|
+
Console.log(`✅ Operazioni riuscite: ${succeeded}`);
|
|
70
|
+
Console.log(`❌ Operazioni fallite: ${failed}`);
|
|
71
|
+
Console.log(`📈 Chiamate al minuto: ${await pool.getActualCallsPerMinute()}`);
|
|
72
|
+
Console.log(`🔄 Chiamate totali: ${pool.getTotalCalls()}`);
|
|
38
73
|
}
|
|
39
74
|
catch (error) {
|
|
40
75
|
Console.error("Errore generale nella demo:", error);
|
|
41
76
|
}
|
|
42
77
|
finally {
|
|
78
|
+
await pool.finish(); // Aspettiamo che tutte le operazioni siano completate
|
|
43
79
|
Console.clearSummaryLines();
|
|
44
80
|
}
|
|
45
81
|
}
|
|
@@ -47,5 +83,9 @@ async function demoCallPool() {
|
|
|
47
83
|
Console.log("🚀 Avvio demo CallPool...\n");
|
|
48
84
|
demoCallPool().catch(error => {
|
|
49
85
|
Console.error("Errore fatale nella demo:", error);
|
|
86
|
+
})
|
|
87
|
+
.finally(() => {
|
|
88
|
+
Console.clearSummaryLines();
|
|
89
|
+
process.exit(0);
|
|
50
90
|
});
|
|
51
91
|
//# sourceMappingURL=callpool-demo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callpool-demo.js","sourceRoot":"","sources":["../../examples/callpool-demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,UAAU,YAAY;IACvB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"callpool-demo.js","sourceRoot":"","sources":["../../examples/callpool-demo.ts"],"names":[],"mappings":"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"}
|
package/dist/src/CallPool.d.ts
CHANGED
|
@@ -4,14 +4,24 @@ export declare enum PROXY {
|
|
|
4
4
|
STATIC = 1,
|
|
5
5
|
DYNAMIC = 2
|
|
6
6
|
}
|
|
7
|
+
interface RetryConfig {
|
|
8
|
+
attempts: number;
|
|
9
|
+
shouldRetry?: (error: any) => boolean;
|
|
10
|
+
delayMs?: number;
|
|
11
|
+
}
|
|
12
|
+
interface CallPoolConfig {
|
|
13
|
+
name?: string;
|
|
14
|
+
proxy?: PROXY;
|
|
15
|
+
minConcurrency?: number;
|
|
16
|
+
maxConcurrency: number;
|
|
17
|
+
limitCall?: number;
|
|
18
|
+
limitInterval?: number;
|
|
19
|
+
retry?: Partial<RetryConfig>;
|
|
20
|
+
}
|
|
7
21
|
export declare class CallPool {
|
|
8
|
-
private name;
|
|
9
22
|
private concurrency;
|
|
10
|
-
private readonly minConcurrency;
|
|
11
|
-
private readonly maxConcurrency;
|
|
12
23
|
private _print;
|
|
13
24
|
private readonly limiter;
|
|
14
|
-
private readonly proxy;
|
|
15
25
|
private readonly CLOCK_NUMBER;
|
|
16
26
|
private readonly WEIGHT;
|
|
17
27
|
private mean;
|
|
@@ -20,18 +30,24 @@ export declare class CallPool {
|
|
|
20
30
|
private queue;
|
|
21
31
|
private activeCount;
|
|
22
32
|
private agent;
|
|
23
|
-
private
|
|
33
|
+
private callStack;
|
|
34
|
+
private callStackMutex;
|
|
35
|
+
private totalCalls;
|
|
24
36
|
private readonly MINUTE_IN_MS;
|
|
25
|
-
|
|
37
|
+
private readonly config;
|
|
38
|
+
private isScheduling;
|
|
39
|
+
constructor(config: CallPoolConfig);
|
|
26
40
|
private buildAxiosConfig;
|
|
41
|
+
private updateCallStack;
|
|
42
|
+
private executeLimited;
|
|
27
43
|
directCall(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse>;
|
|
28
44
|
call(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse>;
|
|
29
45
|
private getRandomUserAgent;
|
|
30
46
|
enqueue(call: () => Promise<any>): Promise<any>;
|
|
31
47
|
private schedule;
|
|
48
|
+
private updateMetrics;
|
|
32
49
|
print(): string;
|
|
33
|
-
updatePrint(): void
|
|
34
|
-
private fetchWithRetry;
|
|
50
|
+
updatePrint(): Promise<void>;
|
|
35
51
|
/**
|
|
36
52
|
* Restituisce il numero di chiamate attualmente in coda
|
|
37
53
|
* @returns {number} Il numero di chiamate in coda
|
|
@@ -43,5 +59,7 @@ export declare class CallPool {
|
|
|
43
59
|
* @returns Promise che si risolve quando la coda è vuota e non ci sono chiamate attive
|
|
44
60
|
*/
|
|
45
61
|
finish(checkInterval?: number): Promise<void>;
|
|
46
|
-
getActualCallsPerMinute(): number
|
|
62
|
+
getActualCallsPerMinute(): Promise<number>;
|
|
63
|
+
getTotalCalls(): number;
|
|
47
64
|
}
|
|
65
|
+
export {};
|
package/dist/src/CallPool.js
CHANGED
|
@@ -8,31 +8,45 @@ import Agent from "agentkeepalive";
|
|
|
8
8
|
import * as RandomUserAgent from "random-useragent";
|
|
9
9
|
import _ from "lodash";
|
|
10
10
|
import { HttpsProxyAgent } from "https-proxy-agent";
|
|
11
|
+
import { setImmediate } from "timers";
|
|
12
|
+
import { Mutex } from "async-mutex";
|
|
11
13
|
const cacheable = new CacheableLookup();
|
|
12
14
|
// Increase the limit
|
|
13
15
|
EventEmitter.defaultMaxListeners = 20;
|
|
14
16
|
//const a = new CallPool("test", 1, 10, 50, 1000, PROXY.DYNAMIC);
|
|
15
|
-
/*axiosRetry(axios, {
|
|
16
|
-
retries: 1,
|
|
17
|
-
retryDelay: (retryCount, error) => {
|
|
18
|
-
Console.log(`retry attempt: ${retryCount}. Error ${error}`);
|
|
19
|
-
return retryCount * 1000;
|
|
20
|
-
},
|
|
21
|
-
});*/
|
|
22
17
|
export var PROXY;
|
|
23
18
|
(function (PROXY) {
|
|
24
19
|
PROXY[PROXY["NONE"] = 0] = "NONE";
|
|
25
20
|
PROXY[PROXY["STATIC"] = 1] = "STATIC";
|
|
26
21
|
PROXY[PROXY["DYNAMIC"] = 2] = "DYNAMIC";
|
|
27
22
|
})(PROXY || (PROXY = {}));
|
|
23
|
+
const defaultRetryConfig = {
|
|
24
|
+
attempts: 1,
|
|
25
|
+
delayMs: 1000,
|
|
26
|
+
shouldRetry: (error) => {
|
|
27
|
+
if (!error.response)
|
|
28
|
+
return true; // errori di rete
|
|
29
|
+
const status = error.response.status;
|
|
30
|
+
// Retry per errori di server e alcuni errori client specifici
|
|
31
|
+
return (status >= 500 ||
|
|
32
|
+
status === 429 || // Too Many Requests
|
|
33
|
+
status === 408 // Request Timeout
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const defaultConfig = {
|
|
38
|
+
name: "default",
|
|
39
|
+
proxy: PROXY.NONE,
|
|
40
|
+
minConcurrency: 1,
|
|
41
|
+
maxConcurrency: 10,
|
|
42
|
+
limitCall: undefined,
|
|
43
|
+
limitInterval: undefined,
|
|
44
|
+
retry: defaultRetryConfig,
|
|
45
|
+
};
|
|
28
46
|
export class CallPool {
|
|
29
|
-
name;
|
|
30
47
|
concurrency;
|
|
31
|
-
minConcurrency = 1;
|
|
32
|
-
maxConcurrency;
|
|
33
48
|
_print = "";
|
|
34
49
|
limiter;
|
|
35
|
-
proxy;
|
|
36
50
|
CLOCK_NUMBER = 1;
|
|
37
51
|
WEIGHT = 100;
|
|
38
52
|
mean = 0;
|
|
@@ -42,18 +56,18 @@ export class CallPool {
|
|
|
42
56
|
activeCount;
|
|
43
57
|
// @ts-ignore
|
|
44
58
|
agent;
|
|
45
|
-
|
|
59
|
+
callStack = [];
|
|
60
|
+
callStackMutex = new Mutex();
|
|
61
|
+
totalCalls = 0;
|
|
46
62
|
MINUTE_IN_MS = 60000;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.
|
|
51
|
-
this.
|
|
63
|
+
config;
|
|
64
|
+
isScheduling = false;
|
|
65
|
+
constructor(config) {
|
|
66
|
+
this.config = { ...defaultConfig, ...config };
|
|
67
|
+
this.concurrency = (this.config.minConcurrency + this.config.maxConcurrency) / 2;
|
|
52
68
|
this.queue = [];
|
|
53
69
|
this.activeCount = 0;
|
|
54
|
-
|
|
55
|
-
this.limiter = throttledQueue(limitCall, limitInterval, true);
|
|
56
|
-
this.proxy = proxy;
|
|
70
|
+
this.limiter = throttledQueue(this.config.limitCall, this.config.limitInterval, true);
|
|
57
71
|
this.updatePrint();
|
|
58
72
|
this.agent = new Agent({
|
|
59
73
|
maxSockets: 100,
|
|
@@ -61,23 +75,11 @@ export class CallPool {
|
|
|
61
75
|
timeout: 30000,
|
|
62
76
|
lookup: cacheable.lookupAsync,
|
|
63
77
|
});
|
|
64
|
-
/*axios("https://api.ipify.org?format=json", {
|
|
65
|
-
method: "GET",
|
|
66
|
-
proxy: null,
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
fetch("https://api.ipify.org?format=json", {
|
|
70
|
-
method: "GET",
|
|
71
|
-
agent: null,
|
|
72
|
-
headers: {
|
|
73
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
|
|
74
|
-
}
|
|
75
|
-
})*/
|
|
76
78
|
}
|
|
77
79
|
buildAxiosConfig(config) {
|
|
78
80
|
return _.merge({
|
|
79
81
|
method: "GET",
|
|
80
|
-
proxy: this.proxy === PROXY.DYNAMIC ? {
|
|
82
|
+
proxy: this.config.proxy === PROXY.DYNAMIC ? {
|
|
81
83
|
protocol: "http",
|
|
82
84
|
host: "api.zyte.com",
|
|
83
85
|
port: 8011,
|
|
@@ -86,26 +88,59 @@ export class CallPool {
|
|
|
86
88
|
password: ""
|
|
87
89
|
},
|
|
88
90
|
} : undefined,
|
|
89
|
-
httpsAgent: this.proxy === PROXY.STATIC ? new HttpsProxyAgent("http://wikicasa:VTt7KYb5fsqDhK6xXinS@162.19.104.35:3128") : undefined,
|
|
90
|
-
httpAgent: this.proxy === PROXY.STATIC ? new HttpsProxyAgent("http://wikicasa:VTt7KYb5fsqDhK6xXinS@162.19.104.35:3128") : undefined,
|
|
91
|
+
httpsAgent: this.config.proxy === PROXY.STATIC ? new HttpsProxyAgent("http://wikicasa:VTt7KYb5fsqDhK6xXinS@162.19.104.35:3128") : undefined,
|
|
92
|
+
httpAgent: this.config.proxy === PROXY.STATIC ? new HttpsProxyAgent("http://wikicasa:VTt7KYb5fsqDhK6xXinS@162.19.104.35:3128") : undefined,
|
|
91
93
|
maxContentLength: Infinity,
|
|
92
94
|
maxBodyLength: Infinity,
|
|
93
95
|
timeout: 600000,
|
|
94
96
|
headers: {
|
|
95
|
-
...(this.proxy === PROXY.DYNAMIC && { "Zyte-Geolocation": "IT" }),
|
|
96
|
-
"User-Agent": this.proxy !== PROXY.NONE ? this.getRandomUserAgent() : undefined,
|
|
97
|
+
...(this.config.proxy === PROXY.DYNAMIC && { "Zyte-Geolocation": "IT" }),
|
|
98
|
+
"User-Agent": this.config.proxy !== PROXY.NONE ? this.getRandomUserAgent() : undefined,
|
|
97
99
|
}
|
|
98
100
|
}, config);
|
|
99
101
|
}
|
|
102
|
+
async updateCallStack() {
|
|
103
|
+
await this.callStackMutex.runExclusive(() => {
|
|
104
|
+
this.totalCalls++;
|
|
105
|
+
const now = Date.now();
|
|
106
|
+
this.callStack.push(now);
|
|
107
|
+
const oneMinuteAgo = now - this.MINUTE_IN_MS;
|
|
108
|
+
this.callStack = this.callStack.filter(timestamp => timestamp > oneMinuteAgo);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
executeLimited(call, resolve, reject, remainingAttempts = this.config.retry?.attempts) {
|
|
112
|
+
const time = performance.now();
|
|
113
|
+
this.activeCount++;
|
|
114
|
+
this.limiter(async () => {
|
|
115
|
+
try {
|
|
116
|
+
await this.updateCallStack();
|
|
117
|
+
const result = await call();
|
|
118
|
+
resolve(result);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
if (this.config.retry?.shouldRetry?.(error) && remainingAttempts > 0) {
|
|
122
|
+
Console.log(`${this.config.name}: Rimetto in coda il tentativo. Tentativi rimasti: ${remainingAttempts - 1}`);
|
|
123
|
+
await sleep(this.config.retry.delayMs);
|
|
124
|
+
this.executeLimited(call, resolve, reject, remainingAttempts - 1);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
reject(error);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
this.activeCount--;
|
|
132
|
+
this.updateMetrics(time);
|
|
133
|
+
setImmediate(() => this.schedule());
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
100
137
|
async directCall(url, config) {
|
|
101
138
|
return axios(url, this.buildAxiosConfig(config));
|
|
102
139
|
}
|
|
103
140
|
call(url, config) {
|
|
104
141
|
return new Promise((resolve, reject) => {
|
|
105
142
|
this.queue.push({
|
|
106
|
-
call:
|
|
107
|
-
return axios(url, this.buildAxiosConfig(config));
|
|
108
|
-
},
|
|
143
|
+
call: () => axios(url, this.buildAxiosConfig(config)),
|
|
109
144
|
resolve,
|
|
110
145
|
reject
|
|
111
146
|
});
|
|
@@ -133,49 +168,45 @@ export class CallPool {
|
|
|
133
168
|
});
|
|
134
169
|
}
|
|
135
170
|
schedule() {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
call
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
})
|
|
151
|
-
.finally(() => {
|
|
152
|
-
this.completedCalls.push(Date.now());
|
|
153
|
-
const oneMinuteAgo = Date.now() - this.MINUTE_IN_MS;
|
|
154
|
-
this.completedCalls = this.completedCalls.filter(timestamp => timestamp > oneMinuteAgo);
|
|
155
|
-
this.activeCount--;
|
|
156
|
-
this.clock--;
|
|
157
|
-
if (this.clock < 0) {
|
|
158
|
-
this.clock = this.CLOCK_NUMBER;
|
|
159
|
-
if (this.mean > this.targetMean && this.mean > 10)
|
|
160
|
-
this.concurrency = Math.max(this.concurrency - Math.floor(this.concurrency / 10), this.minConcurrency);
|
|
161
|
-
if (this.mean < this.targetMean || this.mean < 2)
|
|
162
|
-
this.concurrency = Math.min(this.concurrency + Math.ceil(this.concurrency / 20), this.maxConcurrency);
|
|
163
|
-
this.targetMean = this.mean;
|
|
164
|
-
}
|
|
165
|
-
const t = (performance.now() - time) / 1000;
|
|
166
|
-
this.mean = this.mean > 0 ? this.mean + (t - this.mean) / this.WEIGHT : t;
|
|
167
|
-
this.updatePrint();
|
|
168
|
-
this.schedule();
|
|
169
|
-
});
|
|
170
|
-
});
|
|
171
|
+
if (this.isScheduling)
|
|
172
|
+
return;
|
|
173
|
+
this.isScheduling = true;
|
|
174
|
+
try {
|
|
175
|
+
while (this.activeCount < this.concurrency && this.queue.length > 0) {
|
|
176
|
+
const item = this.queue.shift();
|
|
177
|
+
if (!item)
|
|
178
|
+
break;
|
|
179
|
+
const { call, resolve, reject } = item;
|
|
180
|
+
this.executeLimited(call, resolve, reject);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
finally {
|
|
184
|
+
this.isScheduling = false;
|
|
171
185
|
}
|
|
172
186
|
}
|
|
187
|
+
updateMetrics(startTime) {
|
|
188
|
+
this.clock--;
|
|
189
|
+
if (this.clock < 0) {
|
|
190
|
+
this.clock = this.CLOCK_NUMBER;
|
|
191
|
+
if (this.mean > this.targetMean && this.mean > 10) {
|
|
192
|
+
this.concurrency = Math.max(this.concurrency - Math.floor(this.concurrency / 10), this.config.minConcurrency);
|
|
193
|
+
}
|
|
194
|
+
if (this.mean < this.targetMean || this.mean < 2) {
|
|
195
|
+
this.concurrency = Math.min(this.concurrency + Math.ceil(this.concurrency / 20), this.config.maxConcurrency);
|
|
196
|
+
}
|
|
197
|
+
this.targetMean = this.mean;
|
|
198
|
+
}
|
|
199
|
+
const t = (performance.now() - startTime) / 1000;
|
|
200
|
+
this.mean = this.mean > 0 ? this.mean + (t - this.mean) / this.WEIGHT : t;
|
|
201
|
+
this.updatePrint();
|
|
202
|
+
}
|
|
173
203
|
print() {
|
|
174
204
|
return this._print;
|
|
175
205
|
}
|
|
176
|
-
updatePrint() {
|
|
177
|
-
const textStart = `${Console.color(this.name.padEnd(16), COLORS.YELLOW)} [POOL][`;
|
|
178
|
-
const
|
|
206
|
+
async updatePrint() {
|
|
207
|
+
const textStart = `${Console.color(this.config.name.padEnd(16), COLORS.YELLOW)} [POOL][`;
|
|
208
|
+
const callsPerMinute = await this.getActualCallsPerMinute();
|
|
209
|
+
const textEnd = `][${this.activeCount + this.queue?.length}/${this.concurrency}][${this.mean.toFixed(2)}s, ${callsPerMinute} avg/m]`;
|
|
179
210
|
let progress = "";
|
|
180
211
|
const max = process.stdout.columns - Math.max(textStart.length + textEnd.length, process.stdout.columns * 0.5);
|
|
181
212
|
const percent = this.activeCount / this.concurrency * max;
|
|
@@ -186,21 +217,6 @@ export class CallPool {
|
|
|
186
217
|
this._print = textStart + progress + textEnd;
|
|
187
218
|
Console.forceSummaryLinesRefresh();
|
|
188
219
|
}
|
|
189
|
-
async fetchWithRetry(url, options, retries = 3, sleepTime = 1000) {
|
|
190
|
-
try {
|
|
191
|
-
const response = await fetch(url, options);
|
|
192
|
-
if (!response.ok)
|
|
193
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
194
|
-
return response;
|
|
195
|
-
}
|
|
196
|
-
catch (error) {
|
|
197
|
-
if (retries === 0)
|
|
198
|
-
throw new Error(`Failed to fetch ${url} after several retries`);
|
|
199
|
-
Console.log(`Retrying fetch for ${url}. Attempts remaining: ${retries - 1}`);
|
|
200
|
-
await sleep(sleepTime);
|
|
201
|
-
return this.fetchWithRetry(url, options, retries - 1);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
220
|
/**
|
|
205
221
|
* Restituisce il numero di chiamate attualmente in coda
|
|
206
222
|
* @returns {number} Il numero di chiamate in coda
|
|
@@ -218,9 +234,14 @@ export class CallPool {
|
|
|
218
234
|
await sleep(checkInterval);
|
|
219
235
|
}
|
|
220
236
|
}
|
|
221
|
-
getActualCallsPerMinute() {
|
|
222
|
-
|
|
223
|
-
|
|
237
|
+
async getActualCallsPerMinute() {
|
|
238
|
+
return await this.callStackMutex.runExclusive(() => {
|
|
239
|
+
const oneMinuteAgo = Date.now() - this.MINUTE_IN_MS;
|
|
240
|
+
return this.callStack.filter(timestamp => timestamp > oneMinuteAgo).length;
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
getTotalCalls() {
|
|
244
|
+
return this.totalCalls;
|
|
224
245
|
}
|
|
225
246
|
}
|
|
226
247
|
//# sourceMappingURL=CallPool.js.map
|
package/dist/src/CallPool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallPool.js","sourceRoot":"","sources":["../../src/CallPool.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"CallPool.js","sourceRoot":"","sources":["../../src/CallPool.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.js
CHANGED
|
@@ -161,10 +161,18 @@ export function shuffleArray(array) {
|
|
|
161
161
|
export function extractNumbers(str) {
|
|
162
162
|
if (!str)
|
|
163
163
|
return;
|
|
164
|
-
// Regex per
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
164
|
+
// Regex per date nel formato dd.mm.yyyy o dd/mm/yyyy
|
|
165
|
+
const dateRegex = /\d{1,2}[./]\d{1,2}[./]\d{2,4}/g;
|
|
166
|
+
// Regex per numeri con separatore delle migliaia e decimali
|
|
167
|
+
const numberRegex = /(\d{1,3}(?:[.,]\d{3})*(?:[.,]\d+)?)/g;
|
|
168
|
+
// Troviamo tutte le corrispondenze
|
|
169
|
+
const matches = str.match(numberRegex);
|
|
170
|
+
if (!matches)
|
|
171
|
+
return;
|
|
172
|
+
// Filtriamo i numeri che sono parte di date
|
|
173
|
+
const dates = str.match(dateRegex) || [];
|
|
174
|
+
const numbers = matches.filter(match => match && !dates.some(date => date?.includes(match)));
|
|
175
|
+
return numbers?.[0];
|
|
168
176
|
}
|
|
169
177
|
export function parseFloatFromString(str) {
|
|
170
178
|
if (!str)
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wikicasa-dev/node-common",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Wikicasa node common",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"@elastic/elasticsearch": "^8.15.0",
|
|
23
23
|
"@supercharge/promise-pool": "^3.2.0",
|
|
24
24
|
"agentkeepalive": "^4.5.0",
|
|
25
|
+
"async-mutex": "^0.5.0",
|
|
25
26
|
"axios": "^1.7.7",
|
|
26
27
|
"axios-retry": "^4.5.0",
|
|
27
28
|
"cacheable-lookup": "^7.0.0",
|