Using External Processes (II)
Learn how to prevent the event loop from blocking using external processes.
We'll cover the following...
Let’s now implement the worker (our child process).
Note: It’s good to know that the
send()
method available on a child process instance can also be used to propagate a socket handle from the main application to a child process (look at thechild_process
documentation). This is actually the technique used by thecluster
module to distribute the load of an HTTP server across multiple processes.
Implementing the worker
Let’s create the workers/subsetSumProcessWorker.js
module, our worker process.
Press + to interact
import { SubsetSum } from '../subsetSum.js'process.on('message', msg => { //(1)const subsetSum = new SubsetSum(msg.sum, msg.set)subsetSum.on('match', data => { //(2)process.send({ event: 'match', data: data })})subsetSum.on('end', data => {process.send({ event: 'end', data: data })})subsetSum.start()})process.send('ready')
We can immediately see that we’re reusing the ...