X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fpools%2Fselection-strategies%2Ffair-share-worker-choice-strategy.ts;h=fc4f0f69032c7f37b2730bb7d68c4b6778f5f9a7;hb=78099a150dc54d7adab495195fa5f133fd54e114;hp=57aafe3759544df2e33bdf67ff0c4185b12f7f7e;hpb=bf90656cacf88d2cfdd5b3262086ba55b2ff9818;p=poolifier.git diff --git a/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts b/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts index 57aafe37..fc4f0f69 100644 --- a/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/fair-share-worker-choice-strategy.ts @@ -23,14 +23,16 @@ interface WorkerVirtualTaskTimestamp { */ export class FairShareWorkerChoiceStrategy< Worker extends IPoolWorker, - Data, - Response + Data = unknown, + Response = unknown > extends AbstractWorkerChoiceStrategy implements IWorkerChoiceStrategy { - /** {@inheritDoc} */ + /** @inheritDoc */ public readonly requiredStatistics: RequiredStatistics = { - runTime: true + runTime: true, + avgRunTime: true, + medRunTime: false } /** @@ -41,13 +43,13 @@ export class FairShareWorkerChoiceStrategy< WorkerVirtualTaskTimestamp > = new Map() - /** {@inheritDoc} */ + /** @inheritDoc */ public reset (): boolean { this.workerLastVirtualTaskTimestamp.clear() return true } - /** {@inheritDoc} */ + /** @inheritDoc */ public choose (): number { let minWorkerVirtualTaskEndTimestamp = Infinity let chosenWorkerKey!: number @@ -65,7 +67,7 @@ export class FairShareWorkerChoiceStrategy< return chosenWorkerKey } - /** {@inheritDoc} */ + /** @inheritDoc */ public remove (workerKey: number): boolean { const workerDeleted = this.workerLastVirtualTaskTimestamp.delete(workerKey) for (const [key, value] of this.workerLastVirtualTaskTimestamp.entries()) {