+ }
+
+ /**
+ * Gets the worker node task runtime.
+ * If the task statistics require the average runtime, the average runtime is returned.
+ * If the task statistics require the median runtime , the median runtime is returned.
+ *
+ * @param workerNodeKey - The worker node key.
+ * @returns The worker node task runtime.
+ */
+ protected getWorkerNodeTaskRunTime (workerNodeKey: number): number {
+ return this.taskStatisticsRequirements.runTime.median
+ ? this.pool.workerNodes[workerNodeKey].usage.runTime.median ?? 0
+ : this.pool.workerNodes[workerNodeKey].usage.runTime.average ?? 0
+ }
+
+ /**
+ * Gets the worker node task wait time.
+ * If the task statistics require the average wait time, the average wait time is returned.
+ * If the task statistics require the median wait time, the median wait time is returned.
+ *
+ * @param workerNodeKey - The worker node key.
+ * @returns The worker node task wait time.
+ */
+ protected getWorkerNodeTaskWaitTime (workerNodeKey: number): number {
+ return this.taskStatisticsRequirements.waitTime.median
+ ? this.pool.workerNodes[workerNodeKey].usage.waitTime.median ?? 0
+ : this.pool.workerNodes[workerNodeKey].usage.waitTime.average ?? 0
+ }
+
+ /**
+ * Gets the worker node task ELU.
+ * If the task statistics require the average ELU, the average ELU is returned.
+ * If the task statistics require the median ELU, the median ELU is returned.
+ *
+ * @param workerNodeKey - The worker node key.
+ * @returns The worker node task ELU.
+ */
+ protected getWorkerNodeTaskElu (workerNodeKey: number): number {
+ return this.taskStatisticsRequirements.elu.median
+ ? this.pool.workerNodes[workerNodeKey].usage.elu.active.median ?? 0
+ : this.pool.workerNodes[workerNodeKey].usage.elu.active.average ?? 0
+ }
+
+ /**
+ * Sets safely the previous worker node key.
+ *
+ * @param workerNodeKey - The worker node key.
+ */
+ protected setPreviousWorkerNodeKey (workerNodeKey: number | undefined): void {
+ this.previousWorkerNodeKey =
+ workerNodeKey != null && workerNodeKey >= 0
+ ? workerNodeKey
+ : this.previousWorkerNodeKey