Merge branch 'master' of github.com:jerome-benoit/poolifier
[poolifier.git] / benchmarks / versus-external-pools / dynamic-worker-nodes.js
index 0c665f8597a26625e457091240766829ec53e4c2..7a77d88278877f1acdcc037b8cd55717c76759ee 100644 (file)
@@ -1,31 +1,40 @@
+'use strict'
 // IMPORT LIBRARIES
 const WorkerNodes = require('worker-nodes')
 // FINISH IMPORT LIBRARIES
-const size = Number(process.env.POOL_SIZE)
-const iterations = Number(process.env.NUM_ITERATIONS)
+const size = parseInt(process.env.POOL_SIZE)
+const iterations = parseInt(process.env.NUM_ITERATIONS)
 const data = {
   test: 'MYBENCH',
   taskType: process.env.TASK_TYPE,
-  taskSize: process.env.TASK_SIZE
+  taskSize: parseInt(process.env.TASK_SIZE)
 }
 
 const workerNodes = new WorkerNodes(
   require.resolve('./workers/worker-nodes/function-to-bench-worker'),
   {
-    minWorkers: size,
-    maxWorkers: size * 3,
+    minWorkers: Math.floor(size / 2),
+    maxWorkers: size,
     taskTimeout: 60000 // this is the same as poolifier default
   }
 )
 
 async function run () {
-  const promises = []
+  const promises = new Set()
   for (let i = 0; i < iterations; i++) {
-    promises.push(workerNodes.call.functionToBench(data))
+    promises.add(workerNodes.call.functionToBench(data))
   }
   await Promise.all(promises)
   // eslint-disable-next-line n/no-process-exit
   process.exit()
 }
 
-run()
+(async () => {
+  try {
+    await run()
+  } catch (e) {
+    console.error(e)
+    // eslint-disable-next-line n/no-process-exit
+    process.exit(1)
+  }
+})()