this.checkValidTasksQueueOptions(tasksQueueOptions)
this.opts.tasksQueueOptions =
this.buildTasksQueueOptions(tasksQueueOptions)
- this.setTasksQueueMaxSize(this.opts.tasksQueueOptions.size as number)
+ this.setTasksQueueSize(this.opts.tasksQueueOptions.size as number)
} else if (this.opts.tasksQueueOptions != null) {
delete this.opts.tasksQueueOptions
}
}
- private setTasksQueueMaxSize (size: number): void {
+ private setTasksQueueSize (size: number): void {
for (const workerNode of this.workerNodes) {
workerNode.tasksQueueBackPressureSize = size
}
* @virtual
*/
protected setupHook (): void {
- /** Intentionally empty */
+ /* Intentionally empty */
}
/**
}
}
+ private updateTaskStolenStatisticsWorkerUsage (
+ workerNodeKey: number,
+ taskName: string
+ ): void {
+ const workerNode = this.workerNodes[workerNodeKey]
+ if (workerNode?.usage != null) {
+ ++workerNode.usage.tasks.stolen
+ }
+ if (
+ this.shallUpdateTaskFunctionWorkerUsage(workerNodeKey) &&
+ workerNode.getTaskFunctionWorkerUsage(taskName) != null
+ ) {
+ const taskFunctionWorkerUsage = workerNode.getTaskFunctionWorkerUsage(
+ taskName
+ ) as WorkerUsage
+ ++taskFunctionWorkerUsage.tasks.stolen
+ }
+ }
+
private taskStealingOnEmptyQueue (workerId: number): void {
const destinationWorkerNodeKey = this.getWorkerNodeKeyByWorkerId(workerId)
const destinationWorkerNode = this.workerNodes[destinationWorkerNodeKey]
} else {
this.enqueueTask(destinationWorkerNodeKey, task)
}
- if (destinationWorkerNode?.usage != null) {
- ++destinationWorkerNode.usage.tasks.stolen
- }
- if (
- this.shallUpdateTaskFunctionWorkerUsage(destinationWorkerNodeKey) &&
- destinationWorkerNode.getTaskFunctionWorkerUsage(
- task.name as string
- ) != null
- ) {
- const taskFunctionWorkerUsage =
- destinationWorkerNode.getTaskFunctionWorkerUsage(
- task.name as string
- ) as WorkerUsage
- ++taskFunctionWorkerUsage.tasks.stolen
- }
+ this.updateTaskStolenStatisticsWorkerUsage(
+ destinationWorkerNodeKey,
+ task.name as string
+ )
break
}
}
} else {
this.enqueueTask(workerNodeKey, task)
}
- if (workerNode?.usage != null) {
- ++workerNode.usage.tasks.stolen
- }
- if (
- this.shallUpdateTaskFunctionWorkerUsage(workerNodeKey) &&
- workerNode.getTaskFunctionWorkerUsage(task.name as string) != null
- ) {
- const taskFunctionWorkerUsage = workerNode.getTaskFunctionWorkerUsage(
- task.name as string
- ) as WorkerUsage
- ++taskFunctionWorkerUsage.tasks.stolen
- }
+ this.updateTaskStolenStatisticsWorkerUsage(
+ workerNodeKey,
+ task.name as string
+ )
}
}
}