@wikicasa-dev/node-common 2.5.0 → 3.0.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,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("demo", PROXY.NONE, 1, 100, 100, 60000);
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 willSucceed = Math.random() > 0.2; // 80% di probabilità di successo
25
+ const scenario = Math.random();
11
26
  setTimeout(() => {
12
- if (willSucceed) {
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
- reject(new Error(`💥 Operazione ${id} fallita dopo ${(delay / 1000).toFixed(1)}s`));
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 20 operazioni simulate
22
- const operations = Array.from({ length: 100 }, (_, i) => i + 1);
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
- Console.error(error.message);
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,GAAG,EAAE,KAAK,CAAC,CAAC;IAElE,OAAO,CAAC,iBAAiB,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAClB,MAAM,CAAC,MAAM,EACb,aAAa,CAChB,CAAC;IAEF,2DAA2D;IAC3D,MAAM,eAAe,GAAG,CAAC,EAAU,EAAmB,EAAE;QACpD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,kCAAkC;YAC7E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,iCAAiC;YAE1E,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,WAAW,EAAE,CAAC;oBACd,OAAO,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,KAAK,GAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,KAAK,GAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtF,CAAC;YACL,CAAC,EAAE,KAAK,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,iCAAiC;IACjC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhE,mDAAmD;IACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aACzC,IAAI,CAAC,MAAM,CAAC,EAAE;YACX,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;YAAS,CAAC;QACP,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAChC,CAAC;AACL,CAAC;AAED,kBAAkB;AAClB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC3C,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"callpool-demo.js","sourceRoot":"","sources":["../../examples/callpool-demo.ts"],"names":[],"mappings":"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"}
@@ -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 completedCalls;
33
+ private callStack;
34
+ private callStackMutex;
35
+ private totalCalls;
24
36
  private readonly MINUTE_IN_MS;
25
- constructor(name: string, proxy: PROXY, minConcurrency: number, maxConcurrency: number, limitCall?: number, limitInterval?: number);
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 {};
@@ -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
- completedCalls = [];
59
+ callStack = [];
60
+ callStackMutex = new Mutex();
61
+ totalCalls = 0;
46
62
  MINUTE_IN_MS = 60000;
47
- constructor(name = "default", proxy = PROXY.STATIC, minConcurrency = 1, maxConcurrency, limitCall = 1000, limitInterval = 1000) {
48
- this.name = name;
49
- this.concurrency = (minConcurrency + maxConcurrency) / 2;
50
- this.minConcurrency = minConcurrency;
51
- this.maxConcurrency = maxConcurrency;
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
- // @ts-ignore
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: async () => {
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
- while (this.activeCount < this.concurrency && this.queue.length > 0) {
137
- const item = this.queue.shift();
138
- if (!item)
139
- return;
140
- const { call, resolve, reject } = item;
141
- this.activeCount++;
142
- this.limiter(() => {
143
- const time = performance.now();
144
- call()
145
- .then((result) => {
146
- resolve(result);
147
- })
148
- .catch((error) => {
149
- reject(error);
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 textEnd = `][${this.activeCount + this.queue?.length}/${this.concurrency}][${this.mean.toFixed(2)}s, ${this.getActualCallsPerMinute()} avg/m]`;
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
- const oneMinuteAgo = Date.now() - this.MINUTE_IN_MS;
223
- return this.completedCalls.filter(timestamp => timestamp > oneMinuteAgo).length;
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
@@ -1 +1 @@
1
- {"version":3,"file":"CallPool.js","sourceRoot":"","sources":["../../src/CallPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallPool.js","sourceRoot":"","sources":["../../src/CallPool.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": "2.5.0",
3
+ "version": "3.0.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",