X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fworker-node.ts;h=6eb2d646bdcaa86f93eb07cf341012463f295a9a;hb=refs%2Ftags%2Fv2.7.4;hp=ed6677027f810474aa9aa01e768fd5f483250679;hpb=619e0f0417560f44a99f4508a8f314db54173c0c;p=poolifier.git diff --git a/src/pools/worker-node.ts b/src/pools/worker-node.ts index ed667702..6eb2d646 100644 --- a/src/pools/worker-node.ts +++ b/src/pools/worker-node.ts @@ -20,6 +20,7 @@ import { WorkerTypes, type WorkerUsage } from './worker' +import { checkWorkerNodeArguments } from './utils' /** * Worker node. @@ -57,7 +58,7 @@ implements IWorkerNode { * @param tasksQueueBackPressureSize - The tasks queue back pressure size. */ constructor (worker: Worker, tasksQueueBackPressureSize: number) { - this.checkWorkerNodeArguments(worker, tasksQueueBackPressureSize) + checkWorkerNodeArguments(worker, tasksQueueBackPressureSize) this.worker = worker this.info = this.initWorkerInfo(worker) this.usage = this.initWorkerUsage() @@ -183,6 +184,11 @@ implements IWorkerNode { return this.taskFunctionsUsage.get(name) } + /** @inheritdoc */ + public deleteTaskFunctionWorkerUsage (name: string): boolean { + return this.taskFunctionsUsage.delete(name) + } + private async startOnEmptyQueue (): Promise { if ( this.onEmptyQueueCount > 0 && @@ -227,17 +233,17 @@ implements IWorkerNode { failed: 0 }, runTime: { - history: new CircularArray() + history: new CircularArray() }, waitTime: { - history: new CircularArray() + history: new CircularArray() }, elu: { idle: { - history: new CircularArray() + history: new CircularArray() }, active: { - history: new CircularArray() + history: new CircularArray() } } } @@ -268,43 +274,19 @@ implements IWorkerNode { failed: 0 }, runTime: { - history: new CircularArray() + history: new CircularArray() }, waitTime: { - history: new CircularArray() + history: new CircularArray() }, elu: { idle: { - history: new CircularArray() + history: new CircularArray() }, active: { - history: new CircularArray() + history: new CircularArray() } } } } - - private checkWorkerNodeArguments ( - worker: Worker, - tasksQueueBackPressureSize: number - ): void { - if (worker == null) { - throw new TypeError('Cannot construct a worker node without a worker') - } - if (tasksQueueBackPressureSize == null) { - throw new TypeError( - 'Cannot construct a worker node without a tasks queue back pressure size' - ) - } - if (!Number.isSafeInteger(tasksQueueBackPressureSize)) { - throw new TypeError( - 'Cannot construct a worker node with a tasks queue back pressure size that is not an integer' - ) - } - if (tasksQueueBackPressureSize <= 0) { - throw new RangeError( - 'Cannot construct a worker node with a tasks queue back pressure size that is not a positive integer' - ) - } - } }