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.
Number of workers that this pool should manage.
Path to the worker file.
Options for the pool.
Private
destroyingWhether the pool is destroying or not.
Optional
emitterEvent emitter integrated with async resource on which events can be listened to.
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.'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.'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
maxDynamic pool maximum size property placeholder.
Protected
Readonly
numberNumber of workers that this pool should manage.
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 the worker, the execution response promise resolve and reject callbacks.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
Readonly
startThe start timestamp of the pool.
Private
startedWhether the pool is started or not.
Private
startingWhether the pool is starting or not.
Private
Readonly
taskThe task functions added at runtime map:
key
: The task function name.value
: The task function itself.Protected
workerWorker choice strategy context referencing a worker choice algorithm implementation.
Readonly
Internal
workerPool worker nodes.
Protected
Abstract
busyWhether the pool is busy or not.
The pool busyness boolean status.
Protected
fullWhether the pool is full or not.
The pool filling boolean status.
Protected
maxThe pool maximum size.
Protected
minThe pool minimum size.
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.
Adds a task function to this pool. If a task function with the same name already exists, it will be overwritten.
The name of the task function.
The task function.
true
if the task function was added, false
otherwise.
https://nodejs.org/api/errors.html#class-typeerror If the name
parameter is not a string or an empty string.
https://nodejs.org/api/errors.html#class-typeerror If the fn
parameter is not a function.
Private
addAdds the given worker in the pool worker nodes.
The worker.
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
beforeHook executed before the worker task execution. Can be overridden.
The worker node key.
The task to execute.
Private
buildPrivate
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
chooseProtected
createProtected
createProtected
Abstract
createPrivate
deletePrivate
dequeueProtected
Abstract
deregisterDeregisters a listener callback on the worker given its worker node key.
The worker node key.
The message listener callback.
Protected
Abstract
destroyEnables/disables the worker node tasks queue in this pool.
Whether to enable or disable the worker node tasks queue.
Optional
tasksQueueOptions: TasksQueueOptionsThe worker node tasks queue options.
Private
enqueueExecutes the specified function in the worker constructor with the task data input parameter.
Optional
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: 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 that will be fulfilled when the task is completed.
Private
executeExecutes the given task on the worker given its worker node key.
The worker node key.
The task to execute.
Protected
flagProtected
flushPrivate
flushProtected
getGets the worker information given its worker node key.
The worker node key.
The worker information.
Private
getPrivate
getPrivate
Readonly
handlePrivate
Readonly
handleOptional
previousStolenTask: Task<Data>Private
handlePrivate
handlePrivate
hasPrivate
initializeProtected
internalProtected
Abstract
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
removePrivate
resetPrivate
resetProtected
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: TransferListItem[]The optional array of transferable objects.
Private
setSets the worker node tasks queue options in this pool.
The worker node tasks queue options.
Private
setPrivate
setSets the worker choice strategy in this pool.
The worker choice strategy.
Optional
workerChoiceStrategyOptions: WorkerChoiceStrategyOptionsThe worker choice strategy options.
Sets the worker choice strategy options in this pool.
The worker choice strategy options.
Protected
setupPrivate
shallPrivate
shallPrivate
shallPrivate
tasksPrivate
unsetPrivate
unsetPrivate
updatePrivate
updatePrivate
updatePrivate
updatePrivate
updatePrivate
updatePrivate
updateProtected
Readonly
workerThis method is the message listener registered on each worker.
Private
Readonly
workerGenerated using TypeDoc
Base class that implements some shared logic for all poolifier pools.