type PoolOptions,
type PoolType,
PoolTypes,
- type TasksQueueOptions
+ type TasksQueueOptions,
+ type WorkerType
} from './pool'
import type { IWorker, Task, TasksUsage, WorkerNode } from './worker'
import {
public get info (): PoolInfo {
return {
type: this.type,
+ worker: this.worker,
minSize: this.minSize,
maxSize: this.maxSize,
workerNodes: this.workerNodes.length,
}
}
+ /**
+ * Gets the worker type.
+ */
+ protected abstract get worker (): WorkerType
+
/**
* Pool minimum size.
*/
await Promise.all(
this.workerNodes.map(async (workerNode, workerNodeKey) => {
this.flushTasksQueue(workerNodeKey)
+ // FIXME: wait for tasks to be finished
await this.destroyWorker(workerNode.worker)
})
)
) {
// 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(workerCreated) as Promise<void>)
}
})