Fix strategy handling in pool options (#259)
[poolifier.git] / benchmarks / internal / cluster / fixed.js
index 1fd8d6797c62e1db75e362225e07958d4c5f9dd7..fc4cc3ac8dc545ba4b8d530401b19ac396f1f02c 100644 (file)
@@ -1,32 +1,33 @@
-const { FixedClusterPool } = require('../../../lib/index')
+const {
+  FixedClusterPool,
+  WorkerChoiceStrategies
+} = require('../../../lib/index')
+const { runPoolifierTest } = require('../benchmark-utils')
 
 const size = 30
+const numberOfTasks = 1
 
 const fixedPool = new FixedClusterPool(
   size,
   './benchmarks/internal/cluster/worker.js'
 )
 
+const fixedPoolLessRecentlyUsed = new FixedClusterPool(
+  size,
+  './benchmarks/internal/cluster/worker.js',
+  { workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED }
+)
+
 async function fixedClusterTest (
-  { tasks, workerData } = { tasks: 1, workerData: { proof: 'ok' } }
+  { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
+) {
+  return runPoolifierTest(fixedPool, { tasks, workerData })
+}
+
+async function fixedClusterTestLessRecentlyUsed (
+  { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
 ) {
-  return new Promise((resolve, reject) => {
-    let executions = 0
-    for (let i = 0; i <= tasks; i++) {
-      fixedPool
-        .execute(workerData)
-        .then(res => {
-          executions++
-          if (executions === tasks) {
-            return resolve('FINISH')
-          }
-          return null
-        })
-        .catch(err => {
-          console.error(err)
-        })
-    }
-  })
+  return runPoolifierTest(fixedPoolLessRecentlyUsed, { tasks, workerData })
 }
 
-module.exports = { fixedClusterTest }
+module.exports = { fixedClusterTest, fixedClusterTestLessRecentlyUsed }