- private async startOnIdleWorkerNode (): Promise<void> {
- if (
- this.onIdleWorkerNodeCount > 0 &&
- (this.usage.tasks.executing > 0 || this.tasksQueue.size > 0)
- ) {
- this.onIdleWorkerNodeCount = 0
- return
- }
- ++this.onIdleWorkerNodeCount
- this.dispatchEvent(
- new CustomEvent<WorkerNodeEventDetail>('idleWorkerNode', {
- detail: { workerId: this.info.id as number }
- })
- )
- await sleep(exponentialDelay(this.onIdleWorkerNodeCount))
- await this.startOnIdleWorkerNode()
- }
-
- private isIdle (): boolean {
- return this.usage.tasks.executing === 0 && this.tasksQueue.size === 0
- }
-