X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=docs%2Fclasses%2FDynamicThreadPool.html;h=f3134790a4abb37b0410b4dd988fdeff1045e393;hb=cfc6e8df4c903b63514c46cb67b3f5e24079d3ce;hp=6910150bf4dd6529111bb2ca763a2a2770729168;hpb=d0f1dce33156fdb99f0ca3627839001909419497;p=poolifier.git diff --git a/docs/classes/DynamicThreadPool.html b/docs/classes/DynamicThreadPool.html index 6910150b..f3134790 100644 --- a/docs/classes/DynamicThreadPool.html +++ b/docs/classes/DynamicThreadPool.html @@ -1,57 +1,667 @@ -
Protected
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. +
+- Preparing search index...
+- The search index is not available
poolifier+- poolifier
+- DynamicThreadPool
+Class DynamicThreadPool<Data, Response>
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
.of data sent to the worker. This can only be serializable data.
-of response of execution. This can only be serializable data.
-Alessandro Pio Ardizio
-0.0.1
-Type parameters
Data = unknown
Response = unknown
Hierarchy
Index
Constructors
Properties
Accessors
Methods
Constructors
constructor
Constructs a new poolifier dynamic thread pool.
-Type parameters
Data = unknown
Response = unknown
Parameters
min: number
Minimum number of threads which are always active.
-max: number
Maximum number of threads that can be created by this pool.
-filePath: string
Path to an implementation of a
-ThreadWorker
file, which can be relative or absolute.opts: PoolOptions<ThreadWorkerWithMessageChannel> = {}
Returns DynamicThreadPool<Data, Response>
Properties
Optional Readonly emitter
Readonly file Path
Readonly max
Protected next Message Id
Id of the next message.
-Readonly number Of Workers
Readonly opts
Protected promise Map
The promise map.
-+ +
Author
Alessandro Pio Ardizio
+ +Since
0.0.1
+Type Parameters
++-
+
+-
+
Data = unknown
+Type of data sent to the worker. This can only be serializable data.
+Response = unknown
+Type of response of execution. This can only be serializable data.
+Hierarchy
++- FixedThreadPool<Data, Response>
+
+- DynamicThreadPool
+
+Index
Constructors
+Properties
+Accessors
+Methods
+Constructors
+constructor
++- new
Dynamic Thread Pool<Data, Response>(min: number, max: number, filePath: string, opts?: PoolOptions<ThreadWorkerWithMessageChannel>): DynamicThreadPool<Data, Response>
+-
+
+
+
+
+
+
Constructs a new poolifier dynamic thread pool.
+Type Parameters
++-
+
+-
+
Data = unknown
Response = unknown
Parameters
++-
+
+-
+
+-
+
+-
+
min: number
+Minimum number of threads which are always active.
+max: number
+Maximum number of threads that can be created by this pool.
+filePath: string
+Path to an implementation of a
+ThreadWorker
file, which can be relative or absolute.opts: PoolOptions<ThreadWorkerWithMessageChannel> = {}
+Options for this dynamic thread pool.
+Returns DynamicThreadPool<Data, Response>
Properties
+
+Optional
Readonly
emitter{@inheritDoc}
+ Path
+Readonly
filePath to the worker-file.
+
+Protected
Readonly
maxMaximum number of threads that can be created by this pool.
+ Message Id
+Protected
nextId of the next message.
+ Of Workers
+Readonly
numberNumber of workers that this pool should manage.
+
+Readonly
optsOptions for the pool.
+ Map
+Protected
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.
-Readonly tasks
Protected worker Choice Strategy Context
Worker choice strategy instance implementing the worker choice algorithm.
-Default to a strategy implementing a round robin algorithm.
-Readonly workers
Accessors
busy
Returns boolean
number Of Running Tasks
Returns number
type
Returns PoolType
Methods
Protected after Worker Setup
Parameters
worker: ThreadWorkerWithMessageChannel
Returns void
Protected choose Worker
Choose a worker for the next task.
-The default implementation uses a round robin algorithm to distribute the load.
-Returns ThreadWorkerWithMessageChannel
Worker.
-Protected create And Setup Worker
Creates a new worker for this pool and sets it up completely.
-Returns ThreadWorkerWithMessageChannel
New, completely set up worker.
-Protected create Worker
Returns ThreadWorkerWithMessageChannel
Protected decrease Workers Tasks
Decrease the number of tasks that the given worker has applied.
-Parameters
worker: ThreadWorkerWithMessageChannel
Worker whose tasks are decreased.
-Returns void
destroy
Returns Promise<void>
destroy Worker
Parameters
worker: ThreadWorkerWithMessageChannel
Returns Promise<void>
execute
Parameters
data: Data
Returns Promise<Response>
find Free Tasks Map Entry
Returns false | [ThreadWorkerWithMessageChannel, number]
Protected increase Workers Task
Increase the number of tasks that the given worker has applied.
-Parameters
worker: ThreadWorkerWithMessageChannel
Worker whose tasks are increased.
-Returns void
Protected internal Execute
Parameters
worker: ThreadWorkerWithMessageChannel
messageId: number
Returns Promise<Response>
Protected internal Get Busy Status
Returns boolean
Protected is Main
Returns boolean
register Worker Message Listener
Type parameters
Message
Parameters
messageChannel: ThreadWorkerWithMessageChannel
listener: (message: MessageValue<Message, unknown>) => void
Parameters
message: MessageValue<Message, unknown>
Returns void
Returns void
Protected remove Worker
Removes the given worker from the pool.
-Parameters
worker: ThreadWorkerWithMessageChannel
Worker that will be removed.
-Returns void
Protected send To Worker
Parameters
worker: ThreadWorkerWithMessageChannel
message: MessageValue<Data, unknown>
Returns void
set Worker Choice Strategy
Parameters
workerChoiceStrategy: "ROUND_ROBIN" | "LESS_RECENTLY_USED"
Returns void
Protected setup Hook
Setup hook that can be overridden by a Poolifier pool implementation +
Choice Strategy Context
+Protected
workerWorker choice strategy instance implementing the worker choice algorithm.
+Default to a strategy implementing a round robin algorithm.
+
+Readonly
workers{@inheritDoc}
+ Tasks Usage
+Readonly
workers{@inheritDoc}
+Accessors
+busy
++- get busy(): boolean
+-
+
+
{@inheritDoc}
+Returns boolean
number Of Running Tasks
++- get numberOfRunningTasks(): number
+-
+
+
{@inheritDoc}
+Returns number
type
++- get type(): PoolType
+-
+
+
{@inheritDoc}
+Returns PoolType
Methods
+ Promise Worker Response Hook
+Protected
after+- after
Promise Worker Response Hook(message: MessageValue<Response, unknown>, promise: PromiseWorkerResponseWrapper<ThreadWorkerWithMessageChannel, Response>): void
+-
+
+
+
+
Hook executed after the worker task promise resolution. +Can be overridden.
+Parameters
++-
+
+-
+
message: MessageValue<Response, unknown>
+The received message.
+promise: PromiseWorkerResponseWrapper<ThreadWorkerWithMessageChannel, Response>
+The Promise response.
+Returns void
Worker Setup
+Protected
after+- after
Worker Setup(worker: ThreadWorkerWithMessageChannel): void
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
worker: ThreadWorkerWithMessageChannel
Returns void
Promise Worker Response Hook
+Protected
before+- before
Promise Worker Response Hook(worker: ThreadWorkerWithMessageChannel): void
+-
+
+
+
+
Hook executed before the worker task promise resolution. +Can be overridden.
+Parameters
++-
+
worker: ThreadWorkerWithMessageChannel
+The worker.
+Returns void
Worker
+Protected
choose+- choose
Worker(): ThreadWorkerWithMessageChannel
+-
+
+
Chooses a worker for the next task.
+The default implementation uses a round robin algorithm to distribute the load.
+ +Returns
Worker.
+Returns ThreadWorkerWithMessageChannel
And Setup Worker
+Protected
create+- create
And Setup Worker(): ThreadWorkerWithMessageChannel
+-
+
+
Creates a new worker for this pool and sets it up completely.
+ +Returns
New, completely set up worker.
+Returns ThreadWorkerWithMessageChannel
Worker
+Protected
create+- create
Worker(): ThreadWorkerWithMessageChannel
+-
+
+
{@inheritDoc}
+Returns ThreadWorkerWithMessageChannel
destroy
++- destroy(): Promise<void>
+-
+
+
{@inheritDoc}
+Returns Promise<void>
destroy Worker
++- destroy
Worker(worker: ThreadWorkerWithMessageChannel): Promise<void>
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
worker: ThreadWorkerWithMessageChannel
Returns Promise<void>
execute
++- execute(data: Data): Promise<Response>
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
data: Data
Returns Promise<Response>
find Free Worker
++- find
Free Worker(): false | ThreadWorkerWithMessageChannel
+-
+
+
{@inheritDoc}
+Returns false | ThreadWorkerWithMessageChannel
get Worker Average Tasks Run Time
++- get
Worker Average Tasks Run Time(worker: ThreadWorkerWithMessageChannel): undefined | number
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
worker: ThreadWorkerWithMessageChannel
Returns undefined | number
get Worker Index
++- get
Worker Index(worker: ThreadWorkerWithMessageChannel): number
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
worker: ThreadWorkerWithMessageChannel
Returns number
get Worker Running Tasks
++- get
Worker Running Tasks(worker: ThreadWorkerWithMessageChannel): undefined | number
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
worker: ThreadWorkerWithMessageChannel
Returns undefined | number
Get Busy Status
+Protected
internal+- internal
Get Busy Status(): boolean
+-
+
Returns boolean
Main
+Protected
is+- is
Main(): boolean
+-
+
+
{@inheritDoc}
+Returns boolean
register Worker Message Listener
++- register
Worker Message Listener<Message>(messageChannel: ThreadWorkerWithMessageChannel, listener: ((message: MessageValue<Message, unknown>) => void)): void
+-
+
+
+
+
+
+
{@inheritDoc}
+Type Parameters
++-
+
Message
Parameters
++-
+
+-
+
messageChannel: ThreadWorkerWithMessageChannel
listener: ((message: MessageValue<Message, unknown>) => void)
++-
+
+- (message: MessageValue<Message, unknown>): void
+-
+
+
+
Parameters
++-
+
message: MessageValue<Message, unknown>
Returns void
Returns void
Worker
+Protected
remove+- remove
Worker(worker: ThreadWorkerWithMessageChannel): void
+-
+
+
+
+
Removes the given worker from the pool.
+Parameters
++-
+
worker: ThreadWorkerWithMessageChannel
+The worker that will be removed.
+Returns void
To Worker
+Protected
send+- send
To Worker(worker: ThreadWorkerWithMessageChannel, message: MessageValue<Data, unknown>): void
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
+-
+
worker: ThreadWorkerWithMessageChannel
message: MessageValue<Data, unknown>
Returns void
set Worker Choice Strategy
++- set
Worker Choice Strategy(workerChoiceStrategy: "ROUND_ROBIN" | "LESS_RECENTLY_USED" | "FAIR_SHARE" | "WEIGHTED_ROUND_ROBIN"): void
+-
+
+
+
+
{@inheritDoc}
+Parameters
++-
+
workerChoiceStrategy: "ROUND_ROBIN" | "LESS_RECENTLY_USED" | "FAIR_SHARE" | "WEIGHTED_ROUND_ROBIN"
Returns void
Hook
+Protected
setup+- setup
Hook(): void
+-
+
Setup hook that can be overridden by a Poolifier pool implementation to run code before workers are created in the abstract constructor.
-Returns void
Protected worker Listener
This function is the listener registered for each worker.
-Returns (message: MessageValue<Response, unknown>) => void
The listener function to execute when a message is sent from a worker.
-This function is the listener registered for each worker.
-Parameters
message: MessageValue<Response, unknown>
Returns void
The listener function to execute when a message is sent from a worker.
-Generated using TypeDoc