docs: update benchmarks vs. external pools
[poolifier.git] / examples / dynamicExample.js
index 22379f204bf5a8a504920e06fea498e76f39f728..59d992a67e202387d2b3dec6e6b6538e326a9985 100644 (file)
@@ -1,20 +1,27 @@
-const DynamicThreadPool = require('../lib/dynamic')
+const { DynamicThreadPool, PoolEvents } = require('poolifier')
 let resolved = 0
-let maxReached = 0
+let poolFull = 0
+let poolBusy = 0
 const pool = new DynamicThreadPool(10, 20, './yourWorker.js', {
   errorHandler: e => console.error(e),
-  onlineHandler: () => console.log('worker is online')
+  onlineHandler: () => console.info('worker is online')
 })
-pool.emitter.on('FullPool', () => maxReached++)
+pool.emitter.on(PoolEvents.full, () => poolFull++)
+pool.emitter.on(PoolEvents.busy, () => poolBusy++)
 
-const start = Date.now()
+const start = performance.now()
 const iterations = 1000
-for (let i = 0; i <= iterations; i++) {
-  pool.execute({}).then(res => {
-    resolved++
-    if (resolved === iterations) {
-      console.log('Time take is ' + (Date.now() - start))
-      console.log('The pool was full for ' + maxReached + ' times')
-    }
-  })
+for (let i = 1; i <= iterations; i++) {
+  pool
+    .execute({})
+    .then(() => {
+      resolved++
+      if (resolved === iterations) {
+        console.info('Time taken is ' + (performance.now() - start))
+        console.info('The pool was full for ' + poolFull + ' times')
+        return console.info('The pool was busy for ' + poolBusy + ' times')
+      }
+      return null
+    })
+    .catch(err => console.error(err))
 }