- private initWorkerTaskRunTime (workerKey: number): void {
- this.setWorkerTaskRunTime(workerKey, this.defaultWorkerWeight, 0)
- }
-
- private setWorkerTaskRunTime (
- workerKey: number,
- weight: number,
- runTime: number
- ): void {
- this.workersTaskRunTime.set(workerKey, {
- weight,
- runTime
- })
- }
-
- private getWorkerVirtualTaskRunTime (workerKey: number): number {
- return this.pool.workers[workerKey].tasksUsage.avgRunTime
- }
-
- private computeWorkerWeight (): number {
- let cpusCycleTimeWeight = 0
- for (const cpu of cpus()) {
- // CPU estimated cycle time
- const numberOfDigits = cpu.speed.toString().length - 1
- const cpuCycleTime = 1 / (cpu.speed / Math.pow(10, numberOfDigits))
- cpusCycleTimeWeight += cpuCycleTime * Math.pow(10, numberOfDigits)
+ /** @inheritDoc */
+ public remove (workerNodeKey: number): boolean {
+ if (this.nextWorkerNodeId === workerNodeKey) {
+ if (this.pool.workerNodes.length === 0) {
+ this.nextWorkerNodeId = 0
+ } else if (this.nextWorkerNodeId > this.pool.workerNodes.length - 1) {
+ this.nextWorkerNodeId = this.pool.workerNodes.length - 1
+ }
+ this.workerVirtualTaskRunTime = 0