build(deps-dev): apply updates
[poolifier.git] / CHANGELOG.md
CommitLineData
522eea03 1# Changelog
2
3All notable changes to this project will be documented in this file.
4
d4abc60a 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
522eea03 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
45a5a54c 8## [Unreleased]
9aa78bcb 9
a19a4833
JB
10## [4.0.8] - 2024-05-15
11
91041638
JB
12### Fixed
13
14- Fix default task function worker choice strategy and priority handling.
15
71ccb3ae
JB
16## [4.0.7] - 2024-05-13
17
533a8e22
JB
18### Changed
19
20- Add ELU statistics to pool information.
21
f829e037
JB
22## [4.0.6] - 2024-05-10
23
8a7b12f1
JB
24### Fixed
25
26- Fix pools' `addTaskFunction()` type definition.
27
7cdb9e56
JB
28## [4.0.5] - 2024-05-09
29
3e645903
JB
30### Fixed
31
32- Avoid queued tasks redistribution on the errored worker node.
33
97c12ef2
JB
34## [4.0.4] - 2024-05-08
35
2eee7220
JB
36### Fixed
37
38- Disable `tasksStealingOnBackPressure` by default until performance issues under heavy load are sorted out.
39
04f996c1
JB
40## [4.0.3] - 2024-05-08
41
0d4e88b3
JB
42### Changed
43
44- Optimize task(s) stealing by dequeuing task(s) from the last prioritized bucket.
45
0de45de9
JB
46## [4.0.2] - 2024-05-06
47
9a55fa8c
JB
48### Fixed
49
50- Ensure poolifier worker task performance measurement requirements are synchronized with task function objects' worker choice strategies.
51
840d1755
JB
52## [4.0.1] - 2024-05-02
53
e0843544
JB
54### Fixed
55
56- Ensure dynamic worker node are initialized with sensible worker node usage default values to avoid worker choice strategies biased decisions.
57- Account for tasks wait time in task execution time computation in worker choice strategies to avoid biased decisions under load with several prioritized task functions and tasks queue enabled.
58
f18b1430
JB
59## [4.0.0] - 2024-04-30
60
f7a08a34
JB
61### Changed
62
3e3e2e5d
JB
63- Support per task function(s) priority and worker choice strategy definition via a task function object: `{ taskFunction: (data?: Data) => Response | Promise<Response>, priority?: number, strategy?: WorkerChoiceStrategy }`.
64- Add priority queue based tasks queueing. One priority queue is divided into prioritized buckets to avoid queued tasks starvation under load.
f7a08a34 65- BREAKING CHANGE: `listTaskFunctionNames()` to `listTaskFunctionsProperties()` in pool and worker API returning registered task functions properties.
3e3e2e5d
JB
66- BREAKING CHANGE: `strategy` field in pool information renamed to `defaultStrategy`.
67
68### Fixed
69
70- Ensure worker choice strategy options changes at runtime are propagated to poolifier workers.
f7a08a34 71
48eab590
JB
72## [3.1.30] - 2024-04-22
73
3e3e2e5d 74### Fixed
22bcc4f1
JB
75
76- Fix `transferList` argument type definition.
77
a2568a26
JB
78## [3.1.29] - 2024-04-02
79
3d720596
JB
80### Fixed
81
82- Fix possible race condition at worker node recreation on worker `error` and `exit` events.
83
d1fc382e
JB
84## [3.1.28] - 2024-04-01
85
60dc0a9c
JB
86### Fixed
87
88- Ensure the minimum number of workers on a started pool is guaranteed.
89
cf4c4b77
JB
90## [3.1.27] - 2024-03-27
91
1fee4f60
JB
92### Fixed
93
94- Fix publishing on JSR, take 4.
95
ac1f550f
JB
96## [3.1.26] - 2024-03-27
97
4ba59505
JB
98### Fixed
99
100- Fix publishing on JSR, take 3.
101
3b58238c
JB
102## [3.1.25] - 2024-03-27
103
41328ae5
JB
104### Fixed
105
106- Fix publishing on JSR, take 2.
107
8fddc9ad
JB
108## [3.1.24] - 2024-03-27
109
fcc6278e
JB
110### Fixed
111
112- Fix publishing on JSR.
113
7586f5a8
JB
114## [3.1.23] - 2024-03-27
115
b7bb8586
JB
116### Changed
117
118- Publish on JSR.
119
01f4a5ce
JB
120## [3.1.22] - 2024-03-15
121
d67bed32
JB
122### Fixed
123
124- Fix pool event emitter registered callbacks removal at `destroy()`.
125
6fd820e6
JB
126## [3.1.21] - 2024-02-22
127
369179f6
JB
128### Fixed
129
130- Fix null exception regression: [#1496](https://github.com/poolifier/poolifier/issues/1496).
131
c96e6364
JB
132## [3.1.20] - 2024-02-11
133
d20cde84
JB
134### Fixed
135
136- Ensure `worker_threads` workers are unreferenced at termination.
137
a7358578
JB
138## [3.1.19] - 2024-01-16
139
16d7e943
JB
140### Fixed
141
142- Fix possible null exception at task finishing handling.
143
57bf289f
JB
144### Changed
145
146- Optimize Deque implementation to improve tasks queueing performance.
147
7cf320c9
JB
148## [3.1.18] - 2024-01-06
149
6d7beb8c
JB
150### Fixed
151
152- Fix dynamic pool with minimum number of workers set to zero: [#1748](https://github.com/poolifier/poolifier/issues/1748).
153
a4bc8d0e
JB
154## [3.1.17] - 2024-01-05
155
2b6b412f
JB
156### Changed
157
158- Improve performance by clean up unneeded condition checks on hot code paths.
159
0d64fd53
JB
160## [3.1.16] - 2024-01-03
161
4302d959
JB
162### Fixed
163
164- Add missing type to TS type definitions.
165
9122cc2c
JB
166## [3.1.15] - 2024-01-02
167
a4d25410
JB
168### Fixed
169
170- Fix CommonJS support with TypeScript: [#1821](https://github.com/poolifier/poolifier/issues/1821).
171
565b7e65
JB
172## [3.1.15-0] - 2024-01-02
173
63406ebd
JB
174### Fixed
175
a4d25410 176- Fix CommonJS support with TypeScript: [#1821](https://github.com/poolifier/poolifier/issues/1821).
63406ebd 177
56412ef4
JB
178## [3.1.14] - 2024-01-01
179
e44639e9
JB
180### Fixed
181
182- Properly handle dynamic pool with zero minimum size.
183
5e133e82
JB
184## [3.1.13] - 2023-12-30
185
b20bf19a
JB
186### Changed
187
188- Reduce branching in several hot code paths.
189- Use faster object cloning implementation.
190
60aa9f2f
JB
191## [3.1.12] - 2023-12-27
192
28883f84
JB
193### Fixed
194
195- Fix tasks redistribution triggers at pool destroying.
196
197### Changed
198
199- Switch TypeScript module resolution to Node16.
200
164c80dd
JB
201## [3.1.12-0] - 2023-12-27
202
f4ef37a8
JB
203### Fixed
204
205- Fix tasks redistribution triggers at pool destroying.
206
0766991a
JB
207## [3.1.11] - 2023-12-24
208
5eb72b9e
JB
209### Fixed
210
211- Avoid worker node cross tasks stealing.
212- Ensure only half the pool worker nodes can steal tasks.
213
4618ccfd
JB
214## [3.1.10] - 2023-12-23
215
09616edb
JB
216### Changed
217
218- Avoid useless branching on pool type.
219
bba20209
JB
220## [3.1.9] - 2023-12-22
221
2889bd70
JB
222### Changed
223
224- Readd ThreadPoolOptions and ClusterPoolOptions TS type aliases to PoolOptions.
225
b1bbc365
JB
226## [3.1.8] - 2023-12-21
227
ad3836ed
JB
228### Fixed
229
230- Fix default worker weight computation.
231- Fix possible null exception at pool destroying.
232
72523ab9
JB
233## [3.1.7] - 2023-12-20
234
55d7d600
JB
235### Fixed
236
237- Ensure worker choice strategies implementation wait for worker node readiness: [#1748](https://github.com/poolifier/poolifier/issues/1748).
238
165f3d56
JB
239## [3.1.6] - 2023-12-18
240
85b2561d
JB
241### Fixed
242
243- Fix pool destroying with tasks queuing enabled.
244
6c8cec9e
JB
245## [3.1.5] - 2023-12-18
246
32b141fd
JB
247### Added
248
249- Add queued tasks end timeout support to worker node termination.
250
f11ec29c
JB
251## [3.1.4] - 2023-12-18
252
4e0afe97
JB
253### Fixed
254
255- Make more robust the fix for possible null exception at handling task execution response.
256
f592ef16
JB
257## [3.1.3] - 2023-12-17
258
9b358e72
JB
259### Fixed
260
261- Fix possible null exception at handling task execution response.
262
c61772e5
JB
263## [3.1.2] - 2023-12-17
264
87347ea8
JB
265### Fixed
266
32b141fd 267- Wait for queued tasks to end at worker node termination.
87347ea8 268
6e664bec
JB
269## [3.1.1] - 2023-12-16
270
51280f9b
JB
271### Fixed
272
273- Fix pool options TS type definition.
274
5362c66b
JB
275## [3.1.0] - 2023-12-16
276
c3719753
JB
277### Changed
278
279- TypeScript breaking change: merge ThreadPoolOptions and ClusterPoolOptions types into PoolOptions type.
280
42321a2b
JB
281## [3.0.14] - 2023-12-13
282
fa548cda
JB
283### Fixed
284
285- Fix possible null exception with worker_threads pools.
286
d727d871
JB
287## [3.0.13] - 2023-12-12
288
fb5a7307
JB
289### Fixed
290
291- Ensure worker choice strategy wait for worker nodes readiness.
292
293### Changed
294
295- Remove infinite retries support in worker choice strategy to avoid configuration leading to possible infinite recursion or loop.
296
90a43710
JB
297## [3.0.12] - 2023-12-12
298
9aa78bcb
JB
299### Changed
300
301- Add infinite retries support in worker choice strategy.
45a5a54c 302
d8163b08
JB
303## [3.0.11] - 2023-12-11
304
f18fd12b
JB
305### Fixed
306
457dd3dc 307- Ensure pool asynchronous resource properly track tasks execution.
f18fd12b 308
bd453998
JB
309## [3.0.10] - 2023-12-08
310
cb71d660
JB
311### Changed
312
457dd3dc 313- Add a fastpath when tasks stealing or redistribution is impossible.
cb71d660 314
d7164344
JB
315## [3.0.9] - 2023-11-26
316
78f60f82
JB
317### Fixed
318
319- Remove all pool events listener at pool destroying.
320- Remove all worker node events listener at worker node destroying.
9f99eb9b 321- Fix worker node event emitter listeners handling memory leak at pool options runtime change.
78f60f82 322
0c08a681
JB
323## [3.0.8] - 2023-11-25
324
463226a4
JB
325### Fixed
326
457dd3dc 327- Ensure continuous tasks stealing on idle start at worker node idling.
463226a4 328
14dad1fd
JB
329## [3.0.7] - 2023-11-24
330
65542a35
JB
331### Changed
332
333- Make continuous tasks stealing start at worker node idling.
334
82c5db63
JB
335## [3.0.6] - 2023-11-24
336
711623b8
JB
337### Fixed
338
b51d8596 339- Ensure pool statuses are checked at initialization, `start()` or `destroy()`.
55082af9 340- Ensure pool `ready` event can be emitted after several `start()/destroy()` cycles.
711623b8 341
5aa31a74
JB
342## [3.0.5] - 2023-10-27
343
d91689fd
JB
344### Fixed
345
55082af9 346- Ensure pool `ready` event can be emitted only once.
d91689fd 347
597775b2
JB
348## [3.0.4] - 2023-10-20
349
03fb313b
JB
350### Changed
351
49d60f11 352- Switch to Bencher for benchmarking: [https://bencher.dev/perf/poolifier](https://bencher.dev/perf/poolifier).
03fb313b
JB
353- Use builtin retry mechanism in worker choice strategies instead of custom one.
354
6c285176
JB
355## [3.0.3] - 2023-10-19
356
9761e404
JB
357### Fixed
358
359- Avoid null exception at sending message to worker.
535fd8d5 360- Avoid null exception at checking worker node readiness.
9761e404 361
358dc40f
JB
362## [3.0.2] - 2023-10-17
363
97256a85
JB
364### Fixed
365
c3c2b35e 366- Fix race condition at dynamic worker node task assignment and scheduled removal. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468) and [#1496](https://github.com/poolifier/poolifier/issues/1496).
97256a85 367
7a570743
JB
368## [3.0.1] - 2023-10-16
369
dbfa7948
JB
370### Fixed
371
fc84edac 372- Workaround possible race condition at work nodes array element removal and querying. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468).
dbfa7948 373
365f13e4
JB
374### Changed
375
c3c2b35e 376- Switch the worker node eventing code to `EventTarget` API.
365f13e4 377
003b3275
JB
378## [3.0.0] - 2023-10-08
379
277c49bf
JB
380### Changed
381
382- Remove Node.js 16.x.x (EOL) support.
383
3c9e911a
JB
384## [2.7.5] - 2023-10-03
385
f80125ca
JB
386### Changed
387
388- Use `EventEmitterAsyncResource` type from `@types/node` for pool event emitter. TypeScript users will need to update to latest `@types/node` version.
389
3466e757
JB
390## [2.7.4] - 2023-09-25
391
67b26ae2
JB
392### Fixed
393
394- Fix source maps (bundler issue).
395
eeb1f961
JB
396## [2.7.3] - 2023-09-24
397
b5604034
JB
398### Changed
399
400- Convert pool event emitter to event emitter async resource.
401
f2df6dc8
JB
402## [2.7.2] - 2023-09-23
403
116ca64b
JB
404### Changed
405
406- Add source maps to npm package to ease debugging.
407
1e319a70
JB
408### Added
409
410- Continuous benchmarking versus other worker pools: [https://poolifier.github.io/benchmark](https://poolifier.github.io/benchmark).
411
aab2819b
JB
412## [2.7.1] - 2023-09-20
413
ae036c3e
JB
414### Fixed
415
416- Ensure worker message listener used one time are removed after usage.
417
15d7c489
JB
418## [2.7.0] - 2023-09-19
419
160557ff
JB
420### Fixed
421
422- Fix task stealing related tasks queue options handling at runtime.
423
c3284191
JB
424### Changed
425
426- Rename `listTaskFunctions()` to `listTaskFunctionNames()` in pool and worker API.
427
428### Added
429
35808931 430- Add `hasTaskFunction()`, `addTaskFunction()`, `removeTaskFunction()`, `setDefaultTaskFunction()` methods to pool API: [PR #1148](https://github.com/poolifier/poolifier/pull/1148).
c20084b6 431- Stricter worker constructor arguments validation.
c3284191 432
04054352
JB
433## [2.6.45] - 2023-09-17
434
093af25b
JB
435### Changed
436
437- Disable publication on GitHub packages registry on release until authentication issue is fixed.
09d9af02
JB
438
439### Added
440
ce0ab2d7 441- Add `startWorkers` to pool options to whether start the minimum number of workers at pool initialization or not.
cde5b54e 442- Add `start()` method to pool API to start the minimum number of workers.
2eee7220 443- Add `taskStealing` and `tasksStealingOnBackPressure` to tasks queue options to whether enable task stealing or not and whether enable tasks stealing under back pressure or not.
1e319a70 444- Continuous internal benchmarking: [https://poolifier.github.io/benchmark-results/dev/bench](https://poolifier.github.io/benchmark-results/dev/bench).
f1c674cd 445
bce9ffdf
JB
446## [2.6.44] - 2023-09-08
447
4cb259d3
JB
448### Fixed
449
450- Use a dedicated PAT to publish on GitHub packages registry.
451
452### Added
453
454- Publish on GitHub packages registry on release.
455
456### Changed
457
458- Switch from rome to biome: [PR #1128](https://github.com/poolifier/poolifier/pull/1128).
459
fbda1e26
JB
460## [2.6.43] - 2023-09-08
461
15fc82ba
JB
462### Added
463
4cb259d3 464- Publish on GitHub packages registry on release.
15fc82ba
JB
465
466### Changed
467
4cb259d3 468- Switch from rome to biome: [PR #1128](https://github.com/poolifier/poolifier/pull/1128).
15fc82ba 469
b47306a3
JB
470## [2.6.42] - 2023-09-06
471
ad11ca81
JB
472### Changed
473
474- Optimize hot code paths implementation: avoid unnecessary branching, add and use optimized helpers (min, max), use reduce() array helper, ...
475
1b37751d
JB
476## [2.6.41] - 2023-09-03
477
f3a91bac
JB
478### Changed
479
480- Optimize worker choice strategies implementation.
481
7790a494
JB
482## [2.6.40] - 2023-09-01
483
6fe200b4
JB
484### Fixed
485
486- Do not pre-choose in WRR worker choice strategy to avoid bias.
68738842 487- Avoid array out of bound in worker choice strategies after worker node removal.
6fe200b4 488
766c7f84
JB
489## [2.6.39] - 2023-08-30
490
edf8ce4e
JB
491### Fixed
492
4cb259d3 493- Fix race condition in worker choice strategies at worker node info querying while not yet initialized.
edf8ce4e 494
904a5689
JB
495## [2.6.38] - 2023-08-30
496
b40c4b06
JB
497### Added
498
499- Bundle typescript types declaration into one file.
500
619f403b
JB
501### Changed
502
503- Improve interleaved weighted round robin worker choice strategy implementation.
504
5a24d71c
JB
505## [2.6.37] - 2023-08-28
506
bdb9d712
JB
507### Fixed
508
509- Ensure unused worker usage statistics are deleted at runtime.
510
8c0b113f
JB
511### Changed
512
513- Rename worker choice strategy options `choiceRetries` to `retries`.
574c5c8d 514- Avoid unnecessary branching in worker choice strategies.
8c0b113f 515
ba821940
JB
516## [2.6.36] - 2023-08-27
517
9d2d0da1
JB
518### Fixed
519
520- Fix pool `execute()` arguments check.
521
1f0766e7
JB
522### Changed
523
524- Make continuous tasks stealing algorithm less aggressive.
8780236f 525- Fine tune tasks stealing algorithm under back pressure.
1f0766e7 526
ffd2c1ff
JB
527## [2.6.35] - 2023-08-25
528
dc021bcc
JB
529### Fixed
530
531- Don't account worker usage statistics for tasks that have failed.
3baa0837 532- Fix pool information runtime and wait time median computation.
dc021bcc
JB
533
534### Changed
535
536- Update simple moving average implementation to use a circular buffer.
537- Update simple moving median implementation to use a circular buffer.
68cbdc84
JB
538- Account for stolen tasks in worker usage statistics and pool information.
539
540### Added
541
542- Continuous tasks stealing algorithm.
dc021bcc 543
c58bc2a1
JB
544## [2.6.34] - 2023-08-24
545
0bc68267
JB
546### Fixes
547
548- Avoid cascading tasks stealing under back pressure.
549
550### Changed
551
552- Add fastpath to queued tasks rescheduling.
553
39fb7ad0
JB
554## [2.6.33] - 2023-08-24
555
dd951876
JB
556### Fixed
557
558- Fix queued tasks rescheduling.
559
ff3f866a
JB
560### Changed
561
562- Rename tasks queue options `queueMaxSize` to `size`.
563
a6b3272b 564### Added
dd951876 565
a6b3272b 566- Task stealing scheduling algorithm if tasks queueing is enabled.
dd951876 567
c55c9b5d
JB
568## [2.6.32] - 2023-08-23
569
15b176e0
JB
570### Fixed
571
572- Ensure no task can be executed when the pool is destroyed.
573
20c6f652
JB
574### Added
575
576- Add `queueMaxSize` option to tasks queue options.
574b351d 577- Add O(1) deque implementation implemented with doubly linked list and use it for tasks queueing.
72695f86 578- Add tasks stealing algorithm when a worker node queue is back pressured if tasks queueing is enabled.
20c6f652 579
e560a9f2
JB
580## [2.6.31] - 2023-08-20
581
b1aae695
JB
582### Fixed
583
3e8611a8 584- Fix worker choice strategy retries mechanism in some edge cases.
b1aae695 585
94407def
JB
586### Changed
587
e695d66f 588- Make orthogonal worker choice strategies tasks distribution and created dynamic worker usage.
a71b05bc 589- Remove the experimental status of the `LEAST_ELU` worker choice strategy.
94407def 590
962b9863
JB
591## [2.6.30] - 2023-08-19
592
33e6bb4c
JB
593### Fixed
594
595- Ensure pool event `backPressure` is emitted.
596- Ensure pool event `full` is emitted only once.
8735b4e5 597- Ensure worker node cannot be instantiated without proper arguments.
33e6bb4c 598
8cc4ea81
JB
599## [2.6.29] - 2023-08-18
600
6169563b
JB
601### Fixed
602
55082af9 603- Fix race condition between readiness and task functions worker message handling at startup.
5dd4043c 604- Fix duplicate task function worker usage statistics computation per task function.
db0e38ee 605- Update task function worker usage statistics if and only if there's at least two different task functions.
5bb5be17 606- Fix race condition at task function worker usage executing task computation leading to negative value.
6169563b 607
8990357d
JB
608### Added
609
445264e8 610- Add back pressure detection on the worker node queue. Event `backPressure` is emitted when all worker node queues are full (worker node queue size >= poolMaxSize^2).
8990357d
JB
611- Use back pressure detection in worker choice strategies.
612- Add worker choice strategies retries mechanism if no worker is eligible.
613
21157987
JB
614## [2.6.28] - 2023-08-16
615
f05ed93c
JB
616### Fixed
617
618- Ensure pool workers are properly initialized.
619
12d67776
JB
620### Added
621
622- HTTP server pool examples: express-cluster, express-hybrid.
623
d18fccb1
JB
624### Changed
625
626- Remove now useless branching in worker hot code path.
627
741cdb34
JB
628## [2.6.27] - 2023-08-15
629
50e7f498
JB
630### Fixed
631
632- Add `KillHandler` type definition to exported types.
633
ef3891a3
JB
634### Added
635
636- Add `destroy` event to pool API.
637
e9dc6efa
JB
638## [2.6.26] - 2023-08-15
639
2b099bf7
JB
640### Added
641
642- Add kill handler to worker options allowing to execute custom code when worker is killed.
ef3891a3 643- Add `listTaskFunctions()` method to pool API.
1f4553c6 644- SMTP client pool example: nodemailer.
2b099bf7 645
5b726f72
JB
646## [2.6.25] - 2023-08-13
647
72855e92
JB
648### Added
649
3b311539 650- HTTP server pool examples: fastify-cluster, fastify-hybrid.
02999424 651- WebSocket server pool examples: ws-cluster, ws-hybrid.
72855e92 652
7aadd6e5
JB
653## [2.6.24] - 2023-08-12
654
7d91a8cd
JB
655### Added
656
657- Add array of transferable objects to the `execute()` method arguments.
02999424 658- WebSocket server pool examples: ws-worker_threads.
7d91a8cd 659
6b4263b4
JB
660## [2.6.23] - 2023-08-11
661
3d76750a 662### Fixed
8e0af894 663
3d76750a 664- Fix pool busyness semantic when tasks queueing is enabled: the pool is busy when the number of executing tasks on each worker has reached the maximum tasks concurrency per worker.
9606b474 665
3d76750a
JB
666### Added
667
668- HTTP client pool examples: fetch, node-fetch and axios with multiple task functions.
02999424 669- HTTP server pool examples: express-worker_threads, fastify-worker_threads.
3d76750a
JB
670
671## [2.6.22] - 2023-08-10
9606b474 672
3d76750a 673### Fixed
9606b474
JB
674
675- Add missing `types` field to package.json `exports`.
676
3d76750a
JB
677### Changed
678
679- Structure markdown documentation (PR #811).
680
d9647bdd
JB
681## [2.6.21] - 2023-08-03
682
2111ec12
JB
683### Changed
684
685- Improve code documentation.
686- Code refactoring and cleanup for better maintainability and readability.
687
5c30b9d9
JB
688## [2.6.20] - 2023-07-21
689
10ecf8fd
JB
690### Fixed
691
692- Fix queued tasks redistribution on error task execution starvation.
a1763c54 693- Ensure tasks queueing per worker condition is untangled from the pool busyness semantic.
10ecf8fd 694
aa9eede8
JB
695### Changed
696
7c89e6a4 697- Drastically reduce lookups by worker in the worker nodes.
aa9eede8 698
62485908
JB
699## [2.6.19] - 2023-07-20
700
2e2ef9c3
JB
701### Added
702
703- Dedicated internal communication channel for worker_threads pools.
704
8f4c9491
JB
705## [2.6.18] - 2023-07-19
706
8660b972
JB
707### Changed
708
709- Code refactoring and cleanup for better maintainability and readability. Bundle size is a bit smaller.
710
206a3519
JB
711## [2.6.17] - 2023-07-16
712
b4899fae
JB
713### Added
714
1a3e01ba 715- Add `listTaskFunctions()` method to worker API.
b4899fae 716
58a06a6c
JB
717## [2.6.16] - 2023-07-12
718
2a69b8c5
JB
719### Fixed
720
80520ca4 721- Fix pool startup detection.
2a69b8c5
JB
722- Fix worker task functions handling.
723
b5900b02
JB
724## [2.6.15] - 2023-07-11
725
19dbc45b
JB
726### Added
727
728- Take into account worker node readiness in worker choice strategies.
729
4a0db581
JB
730## [2.6.14] - 2023-07-10
731
87e44747
JB
732### Fixed
733
734- Fix task function statistics tracking.
735
0265272f
JB
736## [2.6.13] - 2023-07-10
737
968a2e8c
JB
738### Added
739
740- Add per task function statistics tracking.
782299f8 741- Add public methods to manipulate the worker task functions at runtime.
968a2e8c 742
44c8c00f
JB
743## [2.6.12] - 2023-07-09
744
aa4bf4b2
JB
745### Fixed
746
747- Workaround import issue with `node:os` module in node 16.x.x.
748
b7cfced1
JB
749## [2.6.11] - 2023-07-09
750
d5024c00
JB
751### Fixed
752
753- Fix pool readiness semantic.
754
f313a208
JB
755## [2.6.10] - 2023-07-08
756
2431bdb4
JB
757### Fixed
758
759- Ensure workers are not recreated on error at pool startup.
760
761### Added
762
763- Add `ready` and `strategy` fields to pool information.
764- Add pool event `ready` to notify when the number of workers created in the pool has reached the maximum size expected and are ready.
caadbd41 765- Add dynamic pool sizing checks.
2431bdb4 766
369d0a51
JB
767## [2.6.9] - 2023-07-07
768
2845f2a5
JB
769### Fixed
770
771- Recreate the right worker type on uncaught exception.
772
773### Added
774
775- Add minimum and maximum to internal measurement statistics.
1dcf8b7b 776- Add `runTime` and `waitTime` to pool information.
75d3401a 777- Check worker inactive time only on dynamic worker.
2845f2a5 778
fc97d613
JB
779## [2.6.8] - 2023-07-03
780
92b1feaa
JB
781### Fixed
782
783- Brown paper bag release to fix version handling in pool information.
784
52d54060
JB
785## [2.6.7] - 2023-07-03
786
5bc91f3e
JB
787### Fixed
788
789- Ensure worker queued tasks at error are reassigned to other pool workers.
790
afe0d5bf
JB
791### Added
792
793- Add pool `utilization` ratio to pool information.
23ccf9d7 794- Add `version` to pool information.
e5b3047d 795- Add worker information to worker nodes.
afe0d5bf 796
f42c583f
JB
797## [2.6.6] - 2023-07-01
798
6961ca9a
JB
799### Added
800
d5e3c4ff 801- Add safe helper `availableParallelism()` to help sizing the pool.
6961ca9a 802
3749facb
JB
803### Fixed
804
805- Ensure message handler is only registered in worker.
806
6fed2513
JB
807## [2.6.5] - 2023-06-27
808
c72f6987
JB
809### Known issues
810
70726c28 811- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782
c72f6987
JB
812
813### Fixed
814
815- Artificial version bump to 2.6.5 to workaround publication issue.
d5e3c4ff 816- Ensure cluster pool `destroy()` gracefully shutdowns worker's server.
c72f6987
JB
817- Ensure pool event is emitted before task error promise rejection.
818- Fix queued tasks count computation.
819
820### Removed
821
2fbe1783 822- Remove unneeded worker_threads worker `MessageChannel` internal usage for IPC.
c72f6987 823
6426631b
JB
824## [2.6.4] - 2023-06-27
825
941f9a7c
JB
826### Known issues
827
70726c28 828- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782
941f9a7c 829
2c039e43
JB
830### Fixed
831
d5e3c4ff 832- Ensure cluster pool `destroy()` gracefully shutdowns worker's server.
2c039e43 833- Ensure pool event is emitted before task error promise rejection.
9c16fb4b 834- Fix queued tasks count computation.
2c039e43 835
941f9a7c
JB
836### Removed
837
2fbe1783 838- Remove unneeded worker_threads worker `MessageChannel` internal usage for IPC.
941f9a7c 839
bc1b0765
JB
840## [2.6.3] - 2023-06-19
841
a6a2dc4c
JB
842### Fixed
843
844- Ensure no tasks are queued when trying to soft kill a dynamic worker.
f0d7f803 845- Update strategies internals after statistics computation.
a6a2dc4c 846
7b56f532
JB
847### Changed
848
849- Optimize O(1) queue implementation.
850
b628596c
JB
851## [2.6.2] - 2023-06-12
852
a9e89d00
JB
853### Fixed
854
855- Fix new worker use after creation in dynamic pool given the current worker choice strategy.
856
4368a898
JB
857## [2.6.1] - 2023-06-10
858
931d43e2
JB
859### Added
860
13ab5b87 861- Add worker choice strategy documentation: [README.md](./docs/worker-choice-strategies.md).
931d43e2 862
f1c06930
JB
863### Fixed
864
865- Fix average statistics computation: ensure failed tasks are not accounted.
866
16671b07
JB
867## [2.6.0] - 2023-06-09
868
a1347286
JB
869### Added
870
5af9c0f7 871- Add `LEAST_ELU` worker choice strategy (experimental).
9adcefab 872- Add tasks ELU instead of runtime support to `FAIR_SHARE` worker choice strategy.
a1347286 873
1c6fe997
JB
874### Changed
875
876- Refactor pool worker node usage internals.
477f48e7 877- Breaking change: refactor worker choice strategy statistics requirements: the syntax of the worker choice strategy options has changed.
f63a9dda 878- Breaking change: pool information `info` property object fields have been renamed.
1c6fe997
JB
879
880### Fixed
881
882- Fix wait time accounting.
883- Ensure worker choice strategy `LEAST_BUSY` accounts also tasks wait time.
884- Ensure worker choice strategy `LEAST_USED` accounts also queued tasks.
885
aa07d6ee
JB
886## [2.5.4] - 2023-06-07
887
b6b32453
JB
888### Added
889
890- Add Event Loop Utilization (ELU) statistics to worker tasks usage.
891
892### Changed
893
894- Compute statistics at the worker level only if needed.
2fbe1783 895- Add `worker_threads` options to thread pool options.
b6b32453 896
272d4d8f
JB
897### Fixed
898
899- Make the `LEAST_BUSY` strategy only relies on task runtime.
900
ed47fb3d
JB
901## [2.5.3] - 2023-06-04
902
89a4abfd
JB
903### Changed
904
905- Refine pool information content.
b4213b7f 906- Limit pool internals public exposure.
89a4abfd 907
8a9febf5
JB
908## [2.5.2] - 2023-06-02
909
91ee39ed
JB
910### Added
911
912- Add `taskError` pool event for task execution error.
6b27d407 913- Add pool information `info` property to pool.
91ee39ed
JB
914- Emit pool information on `busy` and `full` pool events.
915
8babb151
JB
916## [2.5.1] - 2023-06-01
917
0e05c4dc
JB
918### Added
919
1f68cede 920- Add pool option `restartWorkerOnError` to restart worker on uncaught error. Default to `true`.
91ee39ed 921- Add `error` pool event for uncaught worker error.
0e05c4dc 922
a8766181
JB
923## [2.5.0] - 2023-05-31
924
e4543b14
JB
925### Added
926
927- Switch pool event emitter to `EventEmitterAsyncResource`.
6da80d38 928- Add tasks wait time accounting in per worker tasks usage.
5af9c0f7 929- Add interleaved weighted round robin `INTERLEAVED_WEIGHTED_ROUND_ROBIN` worker choice strategy (experimental).
e4543b14
JB
930
931### Changed
932
933- Renamed worker choice strategy `LESS_BUSY` to `LEAST_BUSY` and `LESS_USED` to `LEAST_USED`.
934
570efb11
JB
935## [2.4.14] - 2023-05-09
936
b0f28bad
JB
937### Fixed
938
939- Ensure no undefined task runtime can land in the tasks history.
940- Fix median computation implementation once again.
941
110b6d13
JB
942### Added
943
944- Unit tests for median and queue implementations.
945
72584880
JB
946## [2.4.13] - 2023-05-08
947
b0d6ed8f
JB
948### Fixed
949
e3058615 950- Fix worker choice strategy options validation.
b0d6ed8f
JB
951- Fix fair share worker choice strategy internals update: ensure virtual task end timestamp is computed at task submission.
952
06140c32
JB
953## [2.4.12] - 2023-05-06
954
a86b6df1
JB
955### Added
956
957- Support multiple task functions per worker.
08f3f44c 958- Add custom worker weights support to worker choice strategies options.
a86b6df1 959
29ee7e9a
JB
960### Changed
961
962- Use O(1) queue implementation for tasks queueing.
963
0682ba15
JB
964### Fixed
965
966- Fix median computation implementation.
967- Fix fair share worker choice strategy internals update.
968
936d53ec
JB
969## [2.4.11] - 2023-04-23
970
cb70b19d
JB
971### Changed
972
973- Optimize free worker finding in worker choice strategies.
974
15bb637a
JB
975## [2.4.10] - 2023-04-15
976
ef41a6e6
JB
977### Fixed
978
82ea6492 979- Fix typescript type definition for task function: ensure the input data is optional.
ef41a6e6
JB
980- Fix typescript type definition for pool execute(): ensure the input data is optional.
981
181eb2b4
JB
982## [2.4.9] - 2023-04-15
983
a20f0ba5
JB
984### Added
985
986- Add tasks queue enablement runtime setter to pool.
987- Add tasks queue options runtime setter to pool.
988- Add worker choice strategy options runtime setter to pool.
989
990### Changed
991
992- Remove the tasks queuing experimental status.
993
d4aeae5a
JB
994### Fixed
995
82ea6492 996- Fix task function type definition and validation.
2fc5cae3 997- Fix worker choice strategy options handling.
d4aeae5a 998
1d9e7023
JB
999## [2.4.8] - 2023-04-12
1000
f9b4bbf8
JB
1001### Fixed
1002
1003- Fix message between main worker and worker type definition for tasks.
1004- Fix code documentation.
1005
12ae3210
JB
1006## [2.4.7] - 2023-04-11
1007
7171d33f
JB
1008### Added
1009
1010- Add worker tasks queue options to pool options.
1011
e8bd29ce
JB
1012### Fixed
1013
1014- Fix missing documentation.
1015
42c7bc10
JB
1016## [2.4.6] - 2023-04-10
1017
681196cc
JB
1018### Fixed
1019
1020- Ensure one task at a time is executed per worker with tasks queueing enabled.
1c6fe997 1021- Properly count worker executing tasks with tasks queueing enabled.
681196cc 1022
54d360e3
JB
1023## [2.4.5] - 2023-04-09
1024
3fafb1b2
JB
1025### Added
1026
9e775f96
JB
1027- Use monotonic high resolution timer for worker tasks runtime.
1028- Add worker tasks median runtime to statistics.
ff733df7 1029- Add worker tasks queue (experimental).
3fafb1b2 1030
92fa3eb6
JB
1031## [2.4.4] - 2023-04-07
1032
aee46736
JB
1033### Added
1034
1035- Add `PoolEvents` enumeration and `PoolEvent` type.
1036
36b5e78f
JB
1037### Fixed
1038
ff0c2b3e 1039- Destroy worker only on alive check.
36b5e78f 1040
9fb0f324
JB
1041## [2.4.3] - 2023-04-07
1042
28cf3617
JB
1043### Fixed
1044
1045- Fix typedoc generation with inheritance.
1046
848f0f27
JB
1047## [2.4.2] - 2023-04-06
1048
164d950a
JB
1049### Added
1050
1051- Add `full` event to dynamic pool.
32417142 1052- Keep worker choice strategy in memory for conditional reuse.
164d950a 1053
78ab2555
JB
1054### Fixed
1055
1056- Fix possible negative worker key at worker removal in worker choice strategies.
1057
79aafe9f
JB
1058## [2.4.1] - 2023-04-05
1059
9cd39dd4
JB
1060### Changed
1061
1062- Optimize worker choice strategy for dynamic pool.
1063
965415bb
JB
1064### Fixed
1065
1066- Ensure dynamic pool does not alter worker choice strategy expected behavior.
1067
d8b60b1c
JB
1068## [2.4.0] - 2023-04-04
1069
c6bd2650
JB
1070### Added
1071
1072- Add `LESS_BUSY` worker choice strategy.
1073
1074### Changed
1075
1076- Optimize worker storage in pool.
1077- Optimize worker alive status check.
1078- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1079- Optimize `LESS_USED` worker choice strategy.
2a87030e 1080- Update benchmark versus external threads pools.
c6bd2650
JB
1081- Optimize tasks usage statistics requirements for worker choice strategy.
1082
1083### Fixed
1084
1085- Ensure trimmable characters are checked at pool initialization.
1086- Fix message id integer overflow.
1087- Fix pool worker removal in worker choice strategy internals.
1088- Fix package publication with pnpm.
1089
d0a3f018
JB
1090## [2.4.0-3] - 2023-04-04
1091
b2ede285
JB
1092### Added
1093
1094- Add `LESS_BUSY` worker choice strategy.
1095
1096### Changed
1097
1098- Optimize worker storage in pool.
1099- Optimize worker alive status check.
1100- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1101- Optimize `LESS_USED` worker choice strategy.
2a87030e 1102- Update benchmark versus external threads pools.
b2ede285
JB
1103
1104### Fixed
1105
1106- Ensure trimmable characters are checked at pool initialization.
1107- Fix message id integer overflow.
1108- Fix pool worker removal in worker choice strategy internals.
1109- Fix package publication with pnpm.
1110
a015ea40
JB
1111## [2.4.0-2] - 2023-04-03
1112
698f4bbc
JB
1113### Added
1114
1115- Add `LESS_BUSY` worker choice strategy.
1116
1117### Changed
1118
1119- Optimize worker storage in pool.
1120- Optimize worker alive status check.
1121- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1122- Optimize `LESS_USED` worker choice strategy.
1123
1124### Fixed
1125
1126- Ensure trimmable characters are checked at pool initialization.
1127- Fix message id integer overflow.
1128- Fix pool worker removal in worker choice strategy internals.
1129- Fix package publication with pnpm.
1130
8fe15920
JB
1131## [2.4.0-1] - 2023-04-03
1132
5b301c28
JB
1133### Added
1134
1135- Add `LESS_BUSY` worker choice strategy.
1136
1137### Changed
1138
1139- Optimize worker storage in pool.
1140- Optimize worker alive status check.
1141- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1142- Optimize `LESS_USED` worker choice strategy.
1143
1144### Fixed
1145
1146- Ensure trimmable characters are checked at pool initialization.
1147- Fix message id integer overflow.
1148- Fix pool worker removal in worker choice strategy internals.
1149
2fb9ca9c
JB
1150## [2.4.0-0] - 2023-04-03
1151
168c526f
JB
1152### Added
1153
1154- Add `LESS_BUSY` worker choice strategy.
1155
1d71a908
JB
1156### Changed
1157
ffcbbad8 1158- Optimize worker storage in pool.
1d71a908 1159- Optimize worker alive status check.
65a60b3b 1160- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
737c6d97 1161- Optimize `LESS_USED` worker choice strategy.
1d71a908 1162
ffcbbad8
JB
1163### Fixed
1164
1165- Ensure trimmable characters are checked at pool initialization.
b4e75778 1166- Fix message id integer overflow.
97a2abc3 1167- Fix pool worker removal in worker choice strategy internals.
ffcbbad8 1168
08372738
JB
1169## [2.3.10] - 2023-03-18
1170
710826bc
JB
1171### Fixed
1172
9606b474 1173- Fix package.json `exports` syntax for ESM and CommonJS.
710826bc
JB
1174
1175### Changed
1176
1177- Permit SemVer pre-release publication.
76e5ac6f 1178
e4796ecd
JB
1179## [2.3.10-2] - 2023-03-18
1180
6abad580
JB
1181### Fixed
1182
9606b474 1183- Fix package.json `exports` syntax for ESM and CommonJS.
6abad580 1184
a2ee98cc
JB
1185## [2.3.10-1] - 2023-03-18
1186
7e060cee
JB
1187### Changed
1188
90483887 1189- Permit SemVer pre-release publication.
7e060cee 1190
c81bfafb
JB
1191## [2.3.10-0] - 2023-03-18
1192
fe18768d
JB
1193### Fixed
1194
9606b474 1195- Fix package.json `exports` syntax for ESM and CommonJS.
fe18768d 1196
d7b78217
JB
1197## [2.3.9] - 2023-03-18
1198
ed6dd37f
JB
1199### Changed
1200
1201- Introduce ESM module support along with CommonJS one.
1202
1203### Fixed
1204
1205- Fix brown paper bag bug referencing the same object literal.
1206
68e2ad86
JB
1207## [2.3.8] - 2023-03-18
1208
ca6c7d70
JB
1209### Changed
1210
1211- Switch internal benchmarking code to benny.
fbdedeb9
JB
1212- Switch to TypeScript 5.x.x.
1213- Switch rollup bundler plugins to core ones.
ed6dd37f 1214- Switch to TSDoc syntax.
fbdedeb9 1215- Enforce conventional commits.
ca6c7d70 1216
d15211d4
JB
1217### Fixed
1218
1219- Fix random integer generator.
fbdedeb9 1220- Fix worker choice strategy pool type identification at initialization.
d15211d4 1221
995705ea
JB
1222## [2.3.7] - 2022-10-23
1223
b953022b
JB
1224### Changed
1225
1226- Switch to open collective FOSS project funding platform.
78cea37e
JB
1227- Switch to ts-standard linter configuration on TypeScript code.
1228
1229### Fixed
1230
1231- Fixed missing async on pool execute method.
1232- Fixed typing in TypeScript example.
1233- Fixed types in unit tests.
b953022b 1234
3b9f6953
JB
1235## [2.3.6] - 2022-10-22
1236
f80cead4
JB
1237### Changed
1238
1239- Cleanup pool attributes and methods.
1240- Refine error types thrown.
1241
1242### Fixed
1243
1244- Fix continuous integration build on windows.
1245- Fix code coverage reporting by using c8 instead of nyc.
1246
efc22107
JB
1247## [2.3.5] - 2022-10-21
1248
7a6a0a96
JB
1249### Changed
1250
a05c10de
JB
1251- Improve benchmarks: add IO intensive task workload, add task size option, integrate code into linter.
1252- Optimize tasks usage lookup implementation.
7a6a0a96 1253
b4904890
JB
1254### Fixed
1255
1256- Fix missed pool event emitter type export.
1257- Fix typedoc documentation generation.
1258
a875f8d1
JB
1259## [2.3.4] - 2022-10-17
1260
73cda448
JB
1261### Added
1262
1263- Fully automate release process with release-it.
1264
45a5a54c
JB
1265### Changed
1266
73cda448 1267- Optimize fair share task scheduling algorithm implementation.
2a87030e 1268- Update benchmark versus external pools results with latest version.
45a5a54c 1269
90ee1b18 1270## [2.3.3] - 2022-10-15
1a76932b
JB
1271
1272### Added
1273
1274- Add support for [cluster settings](https://nodejs.org/api/cluster.html#cluster_cluster_settings) in cluster pool options.
1275
90ee1b18 1276## [2.3.2] - 2022-10-14
11df3590
JB
1277
1278### Changed
1279
1280- Optimize fair share worker selection strategy implementation.
1281
1282### Fixed
1283
1284- Fix WRR worker selection strategy: ensure the condition triggering the round robin can be fulfilled.
1285
90ee1b18 1286## [2.3.1] - 2022-10-13
23ff945a
JB
1287
1288### Added
1289
1290- Pool worker choice strategies:
1291 - `WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN` strategy based on weighted round robin scheduling algorithm using tasks execution time for now.
1292 - `WorkerChoiceStrategies.FAIR_SHARE` strategy based on fair share scheduling algorithm using tasks execution time for now.
1293
90ee1b18 1294## [2.2.2] - 2022-10-09
cb2b6c69
JB
1295
1296### Fixed
1297
1298- Fixed `README.md` file.
1299
90ee1b18 1300## [2.2.1] - 2022-10-08
bdacc2d2 1301
bdaf31cd
JB
1302### Added
1303
1304- Dynamic worker choice strategy change at runtime.
bdacc2d2 1305
90ee1b18 1306## [2.2.0] - 2022-01-05
7e0d447f
JB
1307
1308### Breaking Changes
1309
9606b474 1310- Support only Node.js version 16.x.x for cluster pool: upstream cluster API have changed on that version.
7e0d447f 1311
90ee1b18 1312## [2.1.0] - 2021-08-29
35cf1c03
JB
1313
1314### Added
1315
1316- Add an optional pool option `messageHandler` to `PoolOptions<Worker>` for registering a message handler callback on each worker.
e088a00c
JB
1317
1318### Breaking Changes
1319
1320- `AbstractWorker` class `maxInactiveTime`, `killBehavior` and `async` attributes have been removed in favour of the same ones in the worker options `opts` public attribute.
1321- `AbstractWorker` class `lastTask` attribute have been renamed to `lastTaskTimestamp`.
1322- `AbstractWorker` class `interval` attribute have been renamed to `aliveInterval`.
c365b2d3 1323- `AbstractWorker` class cannot be instantiated without specifying the `mainWorker` argument referencing the main worker.
e088a00c 1324
90ee1b18 1325## [2.0.2] - 2021-05-12
14916bf9
JB
1326
1327### Bug fixes
1328
1329- Fix `busy` event emission on fixed pool type
1330
90ee1b18 1331## [2.0.1] - 2021-03-16
7f685093
JB
1332
1333### Bug fixes
1334
1335- Check if pool options are properly set.
1336- `busy` event is emitted on all pool types.
1337
90ee1b18 1338## [2.0.0] - 2021-03-01
fa0f5b28 1339
f3f833ab 1340### Bug fixes
d63d3be3 1341
ddbeaffd 1342- Now a thread/process by default is not deleted when the task submitted take more time than maxInactiveTime configured (issue #70).
d63d3be3 1343
fa0f5b28
S
1344### Breaking Changes
1345
7f685093 1346- `FullPool` event is now renamed to `busy`.
1927ee67 1347- `maxInactiveTime` on `ThreadWorker` default behavior is now changed, if you want to keep the old behavior set `killBehavior` to `KillBehaviors.HARD`.
1a81f8af 1348 _Find more details on our JSDoc._
ddbeaffd 1349
1927ee67
APA
1350- `maxTasks` option on `FixedThreadPool` and `DynamicThreadPool` is now removed since is no more needed.
1351
ddbeaffd 1352- We changed some internal structures, but you shouldn't be too affected by them as these are internal changes.
fa0f5b28 1353
ec2ccfc8
JB
1354### Pool options types declaration merge
1355
1356`FixedThreadPoolOptions` and `DynamicThreadPoolOptions` type declarations have been merged to `PoolOptions<Worker>`.
1357
fa0f5b28
S
1358#### New `export` strategy
1359
1360```js
1361// Before
0eee77cb 1362const DynamicThreadPool = require('poolifier/lib/dynamic')
fa0f5b28 1363// After
0eee77cb 1364const { DynamicThreadPool } = require('poolifier/lib/dynamic')
fa0f5b28
S
1365```
1366
1367But you should always prefer just using
1368
1369```js
0eee77cb 1370const { DynamicThreadPool } = require('poolifier')
fa0f5b28
S
1371```
1372
d3c8a1a8
S
1373#### New type definitions for input data and response
1374
6677a3d3 1375For cluster worker and worker-thread pools, you can now only send and receive structured-cloneable data.
9606b474 1376_This is not a limitation by poolifier but Node.js._
d3c8a1a8 1377
3a4b605f 1378#### Public property replacements
5c5a1fb7 1379
3a4b605f 1380`numWorkers` property is now `numberOfWorkers`
5c5a1fb7 1381
280c2a77 1382#### Internal (protected) properties and methods renaming
fa0f5b28 1383
280c2a77
S
1384These properties are not intended for end users
1385
1386- `id` => `nextMessageId`
1387
1388These methods are not intended for end users
fa0f5b28
S
1389
1390- `_chooseWorker` => `chooseWorker`
280c2a77 1391- `_newWorker` => `createWorker`
fa0f5b28
S
1392- `_execute` => `internalExecute`
1393- `_chooseWorker` => `chooseWorker`
1394- `_checkAlive` => `checkAlive`
1395- `_run` => `run`
1396- `_runAsync` => `runAsync`
1397
90ee1b18 1398## [1.1.0] - 2020-05-21
0312f71a
APA
1399
1400### Added
1401
1402- ThreadWorker support async functions as option
cf9aa6c3 1403- Various external library patches
0312f71a 1404
90ee1b18 1405## [1.0.0] - 2020-01-24
522eea03 1406
1407### Added
1408
1409- FixedThreadPool implementation
1410- DynamicThreadPool implementation
0312f71a 1411- WorkerThread implementation to improve developer experience