Abstract
Type of worker which manages this pool.
Type of data sent to the worker. This can only be structured-cloneable data.
Type of execution response. This can only be structured-cloneable data.
Constructs a new poolifier pool.
Minimum number of workers that this pool manages.
Path to the worker file.
Options for the pool.
Optional
maximumNumberOfWorkers: numberMaximum number of workers that this pool manages.
Private
destroyingWhether the pool is destroying or not.
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 is set to zero, this event is emitted when at least one dynamic worker is ready.'busy'
: Emitted when the number of workers created in the pool has reached the maximum size expected and are executing concurrently their tasks quota.'full'
: Emitted when the pool is dynamic and the number of workers created has 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 all worker nodes have back pressure (i.e. their tasks queue is 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.
Private
readyWhether the pool ready event has been emitted or not.
Private
Optional
startThe start timestamp of the pool.
Private
startedWhether the pool is started or not.
Private
startingWhether the pool is starting or not.
Private
startingWhether the minimum number of workers is starting or not.
Private
Readonly
taskThe task functions added at runtime map:
key
: The task function name.value
: The task function object.Protected
Optional
workerWorker choice strategies context referencing worker choice algorithms implementation.
Readonly
Internal
workerPool worker nodes.
Protected
Abstract
busyWhether the pool is busy or not.
The pool busyness boolean status.
Protected
emptyThe pool emptiness boolean status.
Protected
fullWhether the pool is full or not.
The pool filling boolean status.
Private
readyThe pool readiness boolean status.
Protected
Abstract
typeThe pool type.
If it is 'dynamic'
, it provides the max
property.
Private
utilizationThe approximate pool utilization.
The pool utilization.
Protected
Abstract
workerThe worker type.
Private
addAdds the given worker node in the pool worker nodes.
The worker node.
The added worker node key.
https://nodejs.org/api/errors.html#class-error If the added worker node is not found.
Protected
afterHook executed after the worker task execution. Can be overridden.
The worker node key.
The received message.
Protected
afterProtected
beforePrivate
buildPrivate
cannotProtected
Abstract
checkPrivate
checkPrivate
checkPrivate
checkPrivate
checkPrivate
checkChecks if the worker id sent in the received message from a worker is valid.
The received message.
https://nodejs.org/api/errors.html#class-error If the worker id is invalid.
Private
checkPrivate
checkPrivate
checkPrivate
checkPrivate
chooseProtected
createProtected
createPrivate
createCreates a worker node.
The created worker node.
Private
dequeueProtected
Abstract
deregisterDeregisters a listener callback on the worker given its worker node key.
The worker node key.
The message listener callback.
Protected
destroyOptional
tasksQueueOptions: TasksQueueOptionsPrivate
enqueuePrivate
executeProtected
flagProtected
flushPrivate
flushPrivate
Readonly
getGets task function worker choice strategy, if any.
Optional
name: stringThe task function name.
The task function worker choice strategy if the task function worker choice strategy is defined, undefined
otherwise.
Private
Readonly
getGets the worker choice strategies registered in this pool.
The worker choice strategies.
Protected
getGets the worker information given its worker node key.
The worker node key.
The worker information.
Private
getPrivate
Readonly
getGets worker node task function priority, if any.
The worker node key.
Optional
name: stringThe task function name.
The worker node task function priority if the worker node task function priority is defined, undefined
otherwise.
Private
Readonly
getGets worker node task function worker choice strategy, if any.
The worker node key.
Optional
name: stringThe task function name.
The worker node task function worker choice strategy if the worker node task function worker choice strategy is defined, undefined
otherwise.
Private
handlePrivate
handlePrivate
Readonly
handlePrivate
Readonly
handleOptional
previousStolenTask: Task<Data>Private
handlePrivate
hasPrivate
initPrivate
initInitializes the worker node usage with sensible default values gathered during runtime.
The worker node.
Protected
internalProtected
Abstract
isPrivate
isPrivate
redistributeProtected
Abstract
registerRegisters once a listener callback on the worker given its worker node key.
The worker node key.
The message listener callback.
Protected
Abstract
registerRegisters a listener callback on the worker given its worker node key.
The worker node key.
The message listener callback.
Private
removeRemoves the worker node from the pool worker nodes.
The worker node.
Private
resetPrivate
sendProtected
Abstract
sendPrivate
sendPrivate
sendPrivate
sendProtected
Abstract
sendSends a message to worker given its worker node key.
The worker node key.
The message.
Optional
transferList: readonly TransferListItem[]The optional array of transferable objects.
Private
setPrivate
setPrivate
setOptional
workerChoiceStrategyOptions: WorkerChoiceStrategyOptionsProtected
setupProtected
Abstract
shallPrivate
shallPrivate
shallPrivate
startPrivate
tasksPrivate
unsetPrivate
unsetPrivate
updatePrivate
updateProtected
Readonly
workerThis method is the message listener registered on each worker.
Private
Readonly
worker
Base class that implements some shared logic for all poolifier pools.