- private updateWorkerLastVirtualTaskTimestamp () {
- for (const worker of this.pool.workers) {
- const workerVirtualTaskStartTimestamp = Math.max(
- Date.now(),
- this.workerLastVirtualTaskTimestamp.get(worker)?.end ?? 0
- )
- const workerVirtualTaskEndTimestamp =
- workerVirtualTaskStartTimestamp +
- (this.pool.getWorkerAverageTasksRunTime(worker) ?? 0)
- this.workerLastVirtualTaskTimestamp.set(worker, {
- start: workerVirtualTaskStartTimestamp,
- end: workerVirtualTaskEndTimestamp
- })
- }
+ private computeWorkerLastVirtualTaskTimestamp (workerNodeKey: number): void {
+ const workerVirtualTaskStartTimestamp = Math.max(
+ performance.now(),
+ this.workerLastVirtualTaskTimestamp.get(workerNodeKey)?.end ?? -Infinity
+ )
+ const workerVirtualTaskTRunTime = this.requiredStatistics.medRunTime
+ ? this.pool.workerNodes[workerNodeKey].tasksUsage.medRunTime
+ : this.pool.workerNodes[workerNodeKey].tasksUsage.avgRunTime
+ this.workerLastVirtualTaskTimestamp.set(workerNodeKey, {
+ start: workerVirtualTaskStartTimestamp,
+ end: workerVirtualTaskStartTimestamp + (workerVirtualTaskTRunTime ?? 0)
+ })