Add fair sharing worker choice strategy
[poolifier.git] / benchmarks / internal / cluster / fixed.js
1 const {
2 FixedClusterPool,
3 WorkerChoiceStrategies
4 } = require('../../../lib/index')
5 const { runPoolifierTest } = require('../benchmark-utils')
6
7 const size = 30
8 const numberOfTasks = 1
9
10 const fixedPool = new FixedClusterPool(
11 size,
12 './benchmarks/internal/cluster/worker.js'
13 )
14
15 const fixedPoolLessRecentlyUsed = new FixedClusterPool(
16 size,
17 './benchmarks/internal/cluster/worker.js',
18 { workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED }
19 )
20
21 const fixedPoolFairShare = new FixedClusterPool(
22 size,
23 './benchmarks/internal/cluster/worker.js',
24 { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
25 )
26
27 async function fixedClusterTest (
28 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
29 ) {
30 return runPoolifierTest(fixedPool, { tasks, workerData })
31 }
32
33 async function fixedClusterTestLessRecentlyUsed (
34 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
35 ) {
36 return runPoolifierTest(fixedPoolLessRecentlyUsed, { tasks, workerData })
37 }
38
39 async function fixedClusterTestFairShare (
40 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
41 ) {
42 return runPoolifierTest(fixedPoolFairShare, { tasks, workerData })
43 }
44
45 module.exports = {
46 fixedClusterTest,
47 fixedClusterTestFairShare,
48 fixedClusterTestLessRecentlyUsed
49 }