From ef680bb86320e17178912f48db6cad9bcc4cb2e2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 31 May 2023 11:31:13 +0200 Subject: [PATCH] feat: add helper to get the worker wait time in worker choice strategies code MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../abstract-worker-choice-strategy.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts index efa9578d..2026e674 100644 --- a/src/pools/selection-strategies/abstract-worker-choice-strategy.ts +++ b/src/pools/selection-strategies/abstract-worker-choice-strategy.ts @@ -112,6 +112,20 @@ export abstract class AbstractWorkerChoiceStrategy< : this.pool.workerNodes[workerNodeKey].tasksUsage.avgRunTime } + /** + * Gets the worker task wait time. + * If the required statistics are `avgWaitTime`, the average wait time is returned. + * If the required statistics are `medWaitTime`, the median wait time is returned. + * + * @param workerNodeKey - The worker node key. + * @returns The worker task wait time. + */ + protected getWorkerWaitTime (workerNodeKey: number): number { + return this.requiredStatistics.medWaitTime + ? this.pool.workerNodes[workerNodeKey].tasksUsage.medWaitTime + : this.pool.workerNodes[workerNodeKey].tasksUsage.avgWaitTime + } + /** * Finds the first free worker node key based on the number of tasks the worker has applied. * -- 2.34.1