Constructs a new poolifier fixed cluster pool.
Number of workers for this pool.
Path to an implementation of a ClusterWorker
file, which can be relative or absolute.
Options for this fixed cluster pool.
Optional
maximumNumberOfWorkers: numberThe maximum number of workers for this pool.
Optional
emitterPool event emitter integrated with async resource.
The async tracking tooling identifier is poolifier:<PoolType>-<WorkerType>-pool
.
Events that can currently be listened to:
'ready'
: Emitted when the number of workers created in the pool has reached the minimum size expected and are ready. If the pool is dynamic with a minimum number of workers set to zero, this event is emitted when the pool is started.'busy'
: Emitted when the number of workers created in the pool has reached the maximum size expected and are executing concurrently their tasks quota.'busyEnd'
: Emitted when the number of workers created in the pool has reached the maximum size expected and are no longer executing concurrently their tasks quota.'full'
: Emitted when the pool is dynamic and the number of workers created has reached the maximum size expected.'fullEnd'
: Emitted when the pool is dynamic and the number of workers created has no longer reached the maximum size expected.'empty'
: Emitted when the pool is dynamic with a minimum number of workers set to zero and the number of workers has reached the minimum size expected.'destroy'
: Emitted when the pool is destroyed.'error'
: Emitted when an uncaught error occurs.'taskError'
: Emitted when an error occurs while executing a task.'backPressure'
: Emitted when the number of workers created in the pool has reached the maximum size expected and are back pressured (i.e. their tasks queue is full: queue size >= maximum queue size).'backPressureEnd'
: Emitted when the number of workers created in the pool has reached the maximum size expected and are no longer back pressured (i.e. their tasks queue is no longer full: queue size < maximum queue size).Protected
Readonly
filePath to the worker file.
Protected
Optional
Readonly
maximumMaximum number of workers that this pool manages.
Protected
Readonly
minimumMinimum number of workers that this pool manages.
Protected
Readonly
optsOptions for the pool.
Protected
promiseThe task execution response promise map:
key
: The message id of each submitted task.value
: An object that contains task's worker node key, execution response promise resolve and reject callbacks, async resource.When we receive a message from the worker, we get a map entry with the promise resolve/reject bound to the message id.
Protected
Optional
workerWorker choice strategies context referencing worker choice algorithms implementation.
Readonly
Internal
workerPool worker nodes.
Protected
backWhether the pool is back pressured or not.
The pool back pressure boolean status.
Protected
busyWhether the pool is busy or not.
The pool busyness boolean status.
Protected
typeThe pool type.
If it is 'dynamic'
, it provides the max
property.
Protected
workerThe worker type.
The name of the task function.
The task function.
true
if the task function was added, false
otherwise.
Protected
afterHook executed after the worker task execution. Can be overridden.
The worker node key.
The received message.
Protected
afterProtected
beforeProtected
checkProtected
checkProtected
createProtected
createProtected
deregisterDeregisters a listener callback on the worker given its worker node key.
The worker node key.
The message listener callback.
Protected
destroyOptional
tasksQueueOptions: TasksQueueOptionsOptional
data: DataThe optional task input data for the specified task function. This can only be structured-cloneable data.
Optional
name: stringThe optional name of the task function to execute. If not specified, the default task function will be executed.
Optional
transferList: readonly TransferListItem[]An optional array of transferable objects to transfer ownership of. Ownership of the transferred objects is given to the chosen pool's worker_threads worker and they should not be used in the main thread afterwards.
Promise with a task function response that will be fulfilled when the task is completed.
Protected
flagProtected
flushProtected
getGets the worker information given its worker node key.
The worker node key.
The worker information.
Protected
internalProtected
internalProtected
isThe properties of task functions available in this pool.
The tasks iterable input data for the specified task function. This can only be an iterable of structured-cloneable data.
Optional
name: stringThe optional name of the task function to execute. If not specified, the default task function will be executed.
Optional
transferList: readonly TransferListItem[]An optional array of transferable objects to transfer ownership of. Ownership of the transferred objects is given to the chosen pool's worker_threads worker and they should not be used in the main thread afterwards.
Promise with an array of task function responses that will be fulfilled when the tasks are completed.
Protected
registerRegisters once a listener callback on the worker given its worker node key.
The worker node key.
The message listener callback.
Protected
registerRegisters a listener callback on the worker given its worker node key.
The worker node key.
The message listener callback.
Protected
sendProtected
sendSends a message to worker given its worker node key.
The worker node key.
The message.
Protected
setupOptional
workerChoiceStrategyOptions: WorkerChoiceStrategyOptionsThe worker choice strategy options.
true
if the worker choice strategy options were set, false
otherwise.
Protected
shallProtected
Readonly
workerThis method is the message listener registered on each worker.
The message received from the worker.
A cluster pool with a fixed number of workers.
Author
Christopher Quadflieg
Since
2.0.0