- * Increases the number of tasks that the given worker has applied.
- *
- * @param worker - Worker which running tasks is increased.
- */
- private increaseWorkerRunningTasks (worker: Worker): void {
- this.stepWorkerRunningTasks(worker, 1)
- }
-
- /**
- * Decreases the number of tasks that the given worker has applied.
- *
- * @param worker - Worker which running tasks is decreased.
- */
- private decreaseWorkerRunningTasks (worker: Worker): void {
- this.stepWorkerRunningTasks(worker, -1)
- }
-
- /**
- * Steps the number of tasks that the given worker has applied.
- *
- * @param worker - Worker which running tasks are stepped.
- * @param step - Number of running tasks step.
- */
- private stepWorkerRunningTasks (worker: Worker, step: number): void {
- if (this.checkWorkerTasksUsage(worker)) {
- const tasksUsage = this.workersTasksUsage.get(worker) as TasksUsage
- tasksUsage.running = tasksUsage.running + step
- this.workersTasksUsage.set(worker, tasksUsage)
- }
- }
-
- /**
- * Steps the number of tasks that the given worker has run.
- *
- * @param worker - Worker which has run tasks.
- * @param step - Number of run tasks step.
- */
- private stepWorkerRunTasks (worker: Worker, step: number): void {
- if (this.checkWorkerTasksUsage(worker)) {
- const tasksUsage = this.workersTasksUsage.get(worker) as TasksUsage
- tasksUsage.run = tasksUsage.run + step
- this.workersTasksUsage.set(worker, tasksUsage)
- }
- }
-
- /**
- * Updates tasks runtime for the given worker.
- *
- * @param worker - Worker which run the task.
- * @param taskRunTime - Worker task runtime.
- */
- private updateWorkerTasksRunTime (
- worker: Worker,
- taskRunTime: number | undefined
- ): void {
- if (
- this.workerChoiceStrategyContext.getWorkerChoiceStrategy()
- .requiredStatistics.runTime &&
- this.checkWorkerTasksUsage(worker)
- ) {
- const tasksUsage = this.workersTasksUsage.get(worker) as TasksUsage
- tasksUsage.runTime += taskRunTime ?? 0
- if (tasksUsage.run !== 0) {
- tasksUsage.avgRunTime = tasksUsage.runTime / tasksUsage.run
- }
- this.workersTasksUsage.set(worker, tasksUsage)
- }
- }
-
- /**
- * Checks if the given worker is registered in the workers tasks usage map.