>(worker: Worker, listener: (message: MessageValue<Message>) => void): void
/**
- * Creates a newly worker.
+ * Creates a new worker.
*
* @returns Newly created worker.
*/
if (
isKillBehavior(KillBehaviors.HARD, message.kill) ||
(message.kill != null &&
- this.workerNodes[currentWorkerNodeKey].workerUsage.tasks.executing ===
- 0)
+ ((this.opts.enableTasksQueue === false &&
+ this.workerNodes[currentWorkerNodeKey].workerUsage.tasks
+ .executing === 0) ||
+ (this.opts.enableTasksQueue === true &&
+ this.workerNodes[currentWorkerNodeKey].workerUsage.tasks
+ .executing === 0 &&
+ this.tasksQueueSize(currentWorkerNodeKey) === 0)))
) {
// Kill message received from the worker: no new tasks are submitted to that worker for a while ( > maxInactiveTime)
- this.flushTasksQueue(currentWorkerNodeKey)
- // FIXME: wait for tasks to be finished
void (this.destroyWorker(worker) as Promise<void>)
}
})
this.dequeueTask(workerNodeKey) as Task<Data>
)
}
+ this.workerChoiceStrategyContext.update(workerNodeKey)
}
}
}