X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fworker%2FWorkerDynamicPool.ts;h=7506a5f1a7a335623a377a477d63a8b4d1cbb10d;hb=be424f9e8f51d9a6b339a45f10aeec22a5b25bf7;hp=eebc8fbbd34a280d10cdd9462e96abcb11914719;hpb=5edd8ba0f8978cfb3ca9d80f299d9748c6c5970e;p=e-mobility-charging-stations-simulator.git diff --git a/src/worker/WorkerDynamicPool.ts b/src/worker/WorkerDynamicPool.ts index eebc8fbb..7506a5f1 100644 --- a/src/worker/WorkerDynamicPool.ts +++ b/src/worker/WorkerDynamicPool.ts @@ -2,7 +2,7 @@ import { DynamicThreadPool, type PoolEmitter, type PoolInfo } from 'poolifier'; import { WorkerAbstract } from './WorkerAbstract'; import type { WorkerData, WorkerOptions } from './WorkerTypes'; -import { sleep } from './WorkerUtils'; +import { randomizeDelay, sleep } from './WorkerUtils'; export class WorkerDynamicPool extends WorkerAbstract { private readonly pool: DynamicThreadPool; @@ -13,7 +13,7 @@ export class WorkerDynamicPool extends WorkerAbstract { * @param workerScript - * @param workerOptions - */ - constructor(workerScript: string, workerOptions?: WorkerOptions) { + constructor(workerScript: string, workerOptions: WorkerOptions) { super(workerScript, workerOptions); this.pool = new DynamicThreadPool( this.workerOptions.poolMinSize, @@ -53,6 +53,7 @@ export class WorkerDynamicPool extends WorkerAbstract { public async addElement(elementData: WorkerData): Promise { await this.pool.execute(elementData); // Start element sequentially to optimize memory at startup - this.workerOptions.elementStartDelay > 0 && (await sleep(this.workerOptions.elementStartDelay)); + this.workerOptions.elementStartDelay! > 0 && + (await sleep(randomizeDelay(this.workerOptions.elementStartDelay!))); } }