La copia del código es la siguiente:
var http = require ('http');
función fib (n) {
if (n <2) {
regresar 1;
} demás {
return fib (n - 2) + fib (n - 1);
}
}
var server = http.createServer (function (req, res) {
var num = parseInt (req.url.substring (1), 10);
Res.Writehead (200);
res.end (fib (num) + "/n");
});
servidor.listen (8000);
El ejemplo anterior proporciona un servicio de cálculo de secuencia Fibonacci. Dado que este cálculo lleva bastante tiempo y es un solo hilo, solo uno puede procesarse cuando hay múltiples solicitudes al mismo tiempo. Este problema se puede resolver a través de child_process.fork ().
Aquí hay un ejemplo en el sitio web oficial. Este ejemplo se puede utilizar para comprender bien la función de Fork ().
La copia del código es la siguiente:
var cp = request ('child_process');
var n = cp.fork (__ dirname + '/sub.js');
n.on ('mensaje', función (m) {
console.log ('Mensaje de los padres recibidos:', m);
});
n.send ({Hello: 'World'});
El resultado de ejecutar el fragmento de código anterior:
La copia del código es la siguiente:
Padre recibió mensaje: {foo: 'bar'}
Mensaje de Child Got: {Hola: 'Mundo'}
El contenido de Sub.js es el siguiente:
La copia del código es la siguiente:
Process.on ('Mensaje', function (M) {
console.log ('Mensaje para el niño Got:', m);
});
process.send ({foo: 'bar'});
El objeto de proceso tiene un método send () en el proceso infantil, y publicará el objeto de mensaje cada vez que reciba un mensaje
Lo que es un poco mareado es que el mensaje enviado por Child.send () es recibido por el método Process.On (), y el mensaje enviado por el método Process.send () es recibido por el método child.on ().
Refiriéndose a este ejemplo, podemos mejorar el primer servicio que proporciona datos de Fibonacci, de modo que cada solicitud tenga un nuevo proceso separado para manejarlo.
La copia del código es la siguiente:
var http = require ('http');
var cp = request ('child_process');
var server = http.createServer (function (req, res) {
var child = cp.fork (__ dirname + '/fibonacci-calc.js') ;//each La solicitud genera un nuevo proceso infantil individualmente
Child.on ('Mensaje', Función (M) {
res.end (M.Result + '/n');
});
var entrada = parseInt (req.url.substring (1));
child.send ({input: input});
});
servidor.listen (8000);
Fibonacci-Calc.js
La copia del código es la siguiente:
función fib (n) {
if (n <2) {
regresar 1;
} demás {
return fib (n - 2) + fib (n - 1);
}
}
Process.on ('Mensaje', function (M) {
process.send ({resultado: fib (m.input)});
});
Después de comenzar el servicio, visite http: // localhost: 8080/9 para calcular el valor de la secuencia de Fibonacci de 9.
Lo anterior se trata de este artículo, espero que les guste.