Rename FullPool event to busy, update benchmarks
authoraardizio <alessandroardizio94@gmail.com>
Sat, 27 Feb 2021 13:38:04 +0000 (14:38 +0100)
committeraardizio <alessandroardizio94@gmail.com>
Sat, 27 Feb 2021 13:38:04 +0000 (14:38 +0100)
CHANGELOG.md
README.md
benchmarks/versus-external-pools/package-lock.json
benchmarks/versus-external-pools/package.json
examples/dynamicExample.js
src/pools/pool-internal.ts
src/pools/selection-strategies.ts
tests/pools/cluster/dynamic.test.js
tests/pools/thread/dynamic.test.js

index ce72fc0f33ecfc9e3e292bdf5ab161678c35c25e..32b70e833b6a8df02a564fa268c989a6357a9eeb 100644 (file)
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Breaking Changes
 
+- `FullPool` event is now renamed to `busy`.
 - `maxInactiveTime` on `ThreadWorker` default behavior is now changed, if you want to keep the old behavior set `killBehavior` to `KillBehaviors.HARD`.
   _Find more details on our JSDoc._
 
index 110fbc4f81e625e04ffeeddcca5753f93b2e1245..ec12e3975869149d39d17c8a885d194f3f2c3e79 100644 (file)
--- a/README.md
+++ b/README.md
@@ -127,7 +127,7 @@ const pool = new DynamicThreadPool(10, 100,
   './yourWorker.js',
   { errorHandler: (e) => console.error(e), onlineHandler: () => console.log('worker is online') })
 
-pool.emitter.on('FullPool', () => console.log('Pool is full'))
+pool.emitter.on('busy', () => console.log('Pool is full'))
 
 // the execute method signature is the same for both implementations,
 // so you can easy switch from one to another
index d7e702d5771dc939b1461de88a493ed83f096382..e52cd5d1415de6c2fae7adc8b05822c20eec8424 100644 (file)
       "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
     },
     "piscina": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/piscina/-/piscina-2.1.0.tgz",
-      "integrity": "sha512-3FgX36QyZcU4prKuNKl7/lWlOF3HAv9n7JpCjw09Zbql2KkzXXQ7E5xUS+RV5wV24Rn0r6Lr8jLdtU/cNZHAnA==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/piscina/-/piscina-2.2.0.tgz",
+      "integrity": "sha512-CQb0DfyTdC9FBIMYkVV/00fXRLKDjmWKA8S0N1zDg2JGEc5z3P9qHXtoq8OkJQ+vjCfXySkVonTNMqskMFOW/w==",
       "requires": {
         "eventemitter-asyncresource": "^1.0.0",
         "hdr-histogram-js": "^2.0.1",
index acf0ab4a9f438a71f8adf37a441148c96e3db487..06d0ba052335aeb53433a2e5fb10377145a8446e 100644 (file)
@@ -12,7 +12,7 @@
     "benchmark": "^2.1.4",
     "microjob": "0.7.0",
     "node-worker-threads-pool": "1.4.3",
-    "piscina": "2.1.0",
+    "piscina": "2.2.0",
     "poolifier": "2.0.0-beta.7",
     "threads": "1.6.3",
     "worker-threads-pool": "2.0.0",
index 4003c53462878652804fb8a051feeb792553c051..66909d382d0b4ffc27fb83fb3e84317eb0f68f3c 100644 (file)
@@ -5,7 +5,7 @@ const pool = new DynamicThreadPool(10, 20, './yourWorker.js', {
   errorHandler: e => console.error(e),
   onlineHandler: () => console.log('worker is online')
 })
-pool.emitter.on('FullPool', () => maxReached++)
+pool.emitter.on('busy', () => maxReached++)
 
 const start = Date.now()
 const iterations = 1000
index 6152e3a421a60bf65d64804e491c35a663c7d1c1..911e761df157a07f54ac1300328c82548cc6d9d6 100644 (file)
@@ -37,7 +37,7 @@ export interface IPoolInternal<
    *
    * Events that can currently be listened to:
    *
-   * - `'FullPool'`
+   * - `'busy'`
    */
   readonly emitter: PoolEmitter
 
index 53b129c9a4f1dd6cf1883b2d3157026b56b6ee4a..692ace93889efb399c83ab04072be95fbb1ad314 100644 (file)
@@ -144,7 +144,7 @@ class DynamicPoolWorkerChoiceStrategy<Worker extends IWorker, Data, Response>
     }
 
     if (this.pool.workers.length === this.pool.max) {
-      this.pool.emitter.emit('FullPool')
+      this.pool.emitter.emit('busy')
       return this.workerChoiceStrategy.choose()
     }
 
index 05d8cdd482c5edad35c3024453777e68654ae0d3..607e1fe9cf183ca316c6a18ea9b50a5eba3232d9 100644 (file)
@@ -21,14 +21,14 @@ describe('Dynamic cluster pool test suite', () => {
 
   it('Verify that new workers are created when required, max size is not exceeded and that after a while new workers will die', async () => {
     const promises = []
-    let fullPool = 0
-    pool.emitter.on('FullPool', () => fullPool++)
+    let busy = 0
+    pool.emitter.on('busy', () => busy++)
     for (let i = 0; i < max * 2; i++) {
       promises.push(pool.execute({ test: 'test' }))
     }
     expect(pool.workers.length).toBeLessThanOrEqual(max)
     expect(pool.workers.length).toBeGreaterThan(min)
-    expect(fullPool > 1).toBeTruthy()
+    expect(busy > 1).toBeTruthy()
     const numberOfExitEvents = await TestUtils.waitExits(pool, max - min)
     expect(numberOfExitEvents).toBe(max - min)
   })
index 4ee247206ba8aa0646edb0db385d3dcaa6a54dd7..2e3a849257befecc2e3564518c099d2fa267005d 100644 (file)
@@ -21,13 +21,13 @@ describe('Dynamic thread pool test suite', () => {
 
   it('Verify that new workers are created when required, max size is not exceeded and that after a while new workers will die', async () => {
     const promises = []
-    let fullPool = 0
-    pool.emitter.on('FullPool', () => fullPool++)
+    let busy = 0
+    pool.emitter.on('busy', () => busy++)
     for (let i = 0; i < max * 2; i++) {
       promises.push(pool.execute({ test: 'test' }))
     }
     expect(pool.workers.length).toBe(max)
-    expect(fullPool > 1).toBeTruthy()
+    expect(busy > 1).toBeTruthy()
     const res = await TestUtils.waitExits(pool, max - min)
     expect(res).toBe(max - min)
   })