Constructs a new poolifier dynamic thread pool.
Minimum number of threads which are always active.
Maximum number of threads that can be created by this pool.
Path to an implementation of a ThreadWorker
file, which can be relative or absolute.
Optional
opts: PoolOptions<ThreadWorkerWithMessageChannel> = {}Options for this dynamic thread pool.
Optional
Readonly
emitterReadonly
fileReadonly
maxProtected
nextId of the next message.
Readonly
numberReadonly
optsProtected
promiseThe promise map.
key
: This is the message Id of each submitted task.value
: An object that contains the worker, the resolve function and the reject function.When we receive a message from the worker we get a map entry and resolve/reject the promise based on the message.
Protected
workerWorker choice strategy instance implementing the worker choice algorithm.
Default to a strategy implementing a round robin algorithm.
Readonly
workersReadonly
workersProtected
afterHook executed after the worker task promise resolution. Can be overridden.
The received message.
The Promise response.
Protected
afterProtected
beforeHook executed before the worker task promise resolution. Can be overridden.
The worker.
Protected
chooseChooses a worker for the next task.
The default implementation uses a round robin algorithm to distribute the load.
Worker.
Protected
createCreates a new worker for this pool and sets it up completely.
New, completely set up worker.
Protected
createInitializes tasks usage statistics.
The worker.
Protected
internalProtected
internalProtected
isProtected
removeRemoves the given worker from the pool.
Worker that will be removed.
Protected
sendProtected
setupProtected
workerThis function is the listener registered for each worker.
The listener function to execute when a message is received from a worker.
This function is the listener registered for each worker.
The listener function to execute when a message is received from a worker.
Generated using TypeDoc
A thread pool with a dynamic number of threads, but a guaranteed minimum number of threads.
This thread pool creates new threads when the others are busy, up to the maximum number of threads. When the maximum number of threads is reached, an event is emitted. If you want to listen to this event, use the pool's
emitter
.Template
of data sent to the worker. This can only be serializable data.
Template
of response of execution. This can only be serializable data.
Author
Alessandro Pio Ardizio
Since
0.0.1