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