-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparent.js
30 lines (25 loc) · 864 Bytes
/
parent.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const { Worker } = require('worker_threads')
function runService(workerData) {
return new Promise((resolve, reject) => {
const worker = new Worker(
'./worker.js', { workerData });
worker.on('message', resolve);
worker.on('error', reject);
worker.on('exit', (code) => {
if (code !== 0)
reject(new Error(
`Stopped the Worker Thread with the exit code: ${code}`));
})
})
}
async function run() {
const result = await runService('Testing data')
console.log(result);
}
const trigger = async () => {
const startTime = Date.now();
const [a, b, c] = await Promise.all([run(), run(), run(),run(), run(), run()]);
const endTime = Date.now();
console.log(`Time take for the parent-worker execution: ${endTime - startTime}`);
}
trigger();