Merge branch 'master' of github.com:jerome-benoit/poolifier
[poolifier.git] / examples / dynamicExample.js
index 1b7391d759b01c7d6a41dbc0a953bfc33e5f2c8b..f36138ac8085df0c07712f28150616dd7095a6f2 100644 (file)
@@ -1,14 +1,26 @@
-const { DynamicThreadPool, PoolEvents } = require('poolifier')
-let resolved = 0
+const {
+  DynamicThreadPool,
+  PoolEvents,
+  availableParallelism
+} = require('poolifier')
+
+const pool = new DynamicThreadPool(
+  Math.floor(availableParallelism() / 2),
+  availableParallelism(),
+  './yourWorker.js',
+  {
+    errorHandler: e => console.error(e),
+    onlineHandler: () => console.info('worker is online')
+  }
+)
 let poolFull = 0
+let poolReady = 0
 let poolBusy = 0
-const pool = new DynamicThreadPool(10, 20, './yourWorker.js', {
-  errorHandler: e => console.error(e),
-  onlineHandler: () => console.log('worker is online')
-})
 pool.emitter.on(PoolEvents.full, () => poolFull++)
+pool.emitter.on(PoolEvents.ready, () => poolReady++)
 pool.emitter.on(PoolEvents.busy, () => poolBusy++)
 
+let resolved = 0
 const start = performance.now()
 const iterations = 1000
 for (let i = 1; i <= iterations; i++) {
@@ -17,9 +29,10 @@ for (let i = 1; i <= iterations; i++) {
     .then(() => {
       resolved++
       if (resolved === iterations) {
-        console.log('Time taken is ' + (performance.now() - start))
-        console.log('The pool was full for ' + poolFull + ' times')
-        return console.log('The pool was busy for ' + poolBusy + ' times')
+        console.info('Time taken is ' + (performance.now() - start))
+        console.info('The pool was full for ' + poolFull + ' times')
+        console.info('The pool was ready for ' + poolReady + ' times')
+        return console.info('The pool was busy for ' + poolBusy + ' times')
       }
       return null
     })