import { AbstractWorkerChoiceStrategy } from './abstract-worker-choice-strategy.js'
import type {
IWorkerChoiceStrategy,
- WorkerChoiceStrategyOptions
+ WorkerChoiceStrategyOptions,
} from './selection-strategies-types.js'
/**
* Selects the least used worker.
- *
* @typeParam Worker - Type of worker which manages the strategy.
* @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
* @typeParam Response - Type of execution response. This can only be structured-cloneable data.
return this.pool.workerNodes.reduce(
(minWorkerNodeKey, workerNode, workerNodeKey, workerNodes) => {
return this.isWorkerNodeReady(workerNodeKey) &&
- workerNode.usage.tasks.executed +
- workerNode.usage.tasks.executing +
- workerNode.usage.tasks.queued <
- workerNodes[minWorkerNodeKey].usage.tasks.executed +
- workerNodes[minWorkerNodeKey].usage.tasks.executing +
+ workerNode.usage.tasks.executing + workerNode.usage.tasks.queued <
+ workerNodes[minWorkerNodeKey].usage.tasks.executing +
workerNodes[minWorkerNodeKey].usage.tasks.queued
? workerNodeKey
: minWorkerNodeKey