X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Fless-recently-used-worker-choice-strategy.ts;h=e62d9cdf83bd9a5ae472bc08296dfbe18b96e806;hb=b8f3418c31a95b3b90a88ce07a34c9046a376fc3;hp=03c6524d004846ff925ffaf6f0c498ed75cfb9e4;hpb=a76fac14098cf2138cf8d6997ac7c89d8c3ae508;p=poolifier.git diff --git a/src/pools/selection-strategies/less-recently-used-worker-choice-strategy.ts b/src/pools/selection-strategies/less-recently-used-worker-choice-strategy.ts index 03c6524d..e62d9cdf 100644 --- a/src/pools/selection-strategies/less-recently-used-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/less-recently-used-worker-choice-strategy.ts @@ -1,19 +1,24 @@ -import type { AbstractPoolWorker } from '../abstract-pool-worker' +import type { IPoolWorker } from '../pool-worker' import { AbstractWorkerChoiceStrategy } from './abstract-worker-choice-strategy' /** * Selects the less recently used worker. * - * @template Worker Type of worker which manages the strategy. - * @template Data Type of data sent to the worker. This can only be serializable data. - * @template Response Type of response of execution. This can only be serializable data. + * @typeParam Worker - Type of worker which manages the strategy. + * @typeParam Data - Type of data sent to the worker. This can only be serializable data. + * @typeParam Response - Type of response of execution. This can only be serializable data. */ export class LessRecentlyUsedWorkerChoiceStrategy< - Worker extends AbstractPoolWorker, + Worker extends IPoolWorker, Data, Response > extends AbstractWorkerChoiceStrategy { - /** @inheritDoc */ + /** {@inheritDoc} */ + public reset (): boolean { + return true + } + + /** {@inheritDoc} */ public choose (): Worker { let minNumberOfRunningTasks = Infinity // A worker is always found because it picks the one with fewer tasks @@ -22,7 +27,7 @@ export class LessRecentlyUsedWorkerChoiceStrategy< const workerRunningTasks = this.pool.getWorkerRunningTasks( worker ) as number - if (this.isDynamicPool === false && workerRunningTasks === 0) { + if (!this.isDynamicPool && workerRunningTasks === 0) { return worker } else if (workerRunningTasks < minNumberOfRunningTasks) { lessRecentlyUsedWorker = worker