Subprocesos de trabajo de Node.js

Worker Threads en Node.js es útil para realizar tareas pesadas de JavaScript. Con la ayuda de subprocesos, Worker facilita la ejecución de códigos javascript en paralelo, lo que lo hace mucho más rápido y eficiente. Podemos hacer tareas pesadas sin siquiera perturbar el hilo principal. Los subprocesos de trabajo no se introdujeron en las versiones anteriores de Node. Por lo tanto, primero actualice su Node.js para comenzar.

Ahora cree dos archivos para implementar el hilo como se muestra a continuación:
Nombre de archivo: trabajador.js

const { workerData, parentPort } 
        = require('worker_threads')
  
console.log('Technical Articles on '
                    + workerData);
  
parentPort.postMessage(
    { fileName: workerData, status: 'Done' })

Aquí, workerData y parentPort son parte de Worker Thread. El workerData se usa para obtener los datos del subproceso y parentPort se usa para manipular el subproceso. El método postMessage() se usa para publicar el mensaje dado en la consola tomando el nombre del archivo tal como lo obtiene workerData.

Nombre de archivo: index.js

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('GeeksForGeeks')
    console.log(result);
}
  
run().catch(err => console.error(err))

Aquí, la función runService() devuelve una Promesa y ejecuta el subproceso de trabajo. La función run() se usa para llamar a la función runService() y dar el valor de workerData .

Paso para ejecutar esta aplicación: Ejecute el siguiente comando:

node index.js

La salida para el siguiente comando anterior se muestra a continuación:

Technical Articles on GeeksForGeeks
{ fileName: 'GeeksForGeeks', status: 'Done' }

Conclusión: con subprocesos de trabajo, podemos lograr una aplicación mucho más eficiente sin crear una situación de punto muerto. Así es como puede importar el subproceso de trabajo en una aplicación e implementar el subproceso.

Publicación traducida automáticamente

Artículo escrito por pranjal_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *