import type {
ErrorHandler,
ExitHandler,
+ IWorker,
MessageHandler,
OnlineHandler
-} from './pool-worker'
-import type { WorkerChoiceStrategy } from './selection-strategies/selection-strategies-types'
+} from './worker'
+import type {
+ WorkerChoiceStrategy,
+ WorkerChoiceStrategyOptions
+} from './selection-strategies/selection-strategies-types'
/**
* Pool events emitter.
*/
export type PoolEvent = keyof typeof PoolEvents
+/**
+ * Worker tasks queue options.
+ */
+export interface TasksQueueOptions {
+ /**
+ * Maximum number of tasks that can be executed concurrently on a worker.
+ *
+ * @defaultValue 1
+ */
+ concurrency?: number
+}
+
/**
* Options for a poolifier pool.
*/
-export interface PoolOptions<Worker> {
+export interface PoolOptions<Worker extends IWorker> {
/**
* A function that will listen for message event on each worker.
*/
* The worker choice strategy to use in this pool.
*/
workerChoiceStrategy?: WorkerChoiceStrategy
+ /**
+ * The worker choice strategy options.
+ */
+ workerChoiceStrategyOptions?: WorkerChoiceStrategyOptions
/**
* Pool events emission.
*
* @defaultValue true
*/
enableEvents?: boolean
+ /**
+ * Pool worker tasks queue.
+ *
+ * @experimental
+ * @defaultValue false
+ */
+ enableTasksQueue?: boolean
+ /**
+ * Pool worker tasks queue options.
+ *
+ * @experimental
+ */
+ tasksQueueOptions?: TasksQueueOptions
}
/**