+const WorkerFunctions = {
+ jsonIntegerSerialization: 'jsonIntegerSerialization',
+ fibonacci: 'fibonacci',
+ factorial: 'factorial'
+}
+
async function runPoolifierTest (pool, { tasks, workerData }) {
return new Promise((resolve, reject) => {
let executions = 0
for (let i = 1; i <= tasks; i++) {
pool
.execute(workerData)
- .then(res => {
+ .then(() => {
executions++
if (executions === tasks) {
return resolve('FINISH')
}
}
-function generateRandomInteger (max, min = 0) {
+function generateRandomInteger (max = Number.MAX_SAFE_INTEGER, min = 0) {
max = Math.floor(max)
if (min) {
min = Math.ceil(min)
}
}
+function executeWorkerFunction (data) {
+ switch (data.function) {
+ case WorkerFunctions.jsonIntegerSerialization:
+ return jsonIntegerSerialization(data.n || 1000)
+ case WorkerFunctions.fibonacci:
+ return fibonacci(data.n || 1000)
+ case WorkerFunctions.factorial:
+ return factorial(data.n || 1000)
+ default:
+ throw new Error('Unknown worker function')
+ }
+}
+
const LIST_FORMATTER = new Intl.ListFormat('en-US', {
style: 'long',
type: 'conjunction'
})
module.exports = {
- runPoolifierTest,
- jsonIntegerSerialization,
+ LIST_FORMATTER,
+ WorkerFunctions,
+ executeWorkerFunction,
generateRandomInteger,
- fibonacci,
- factorial,
- LIST_FORMATTER
+ runPoolifierTest
}