Estoy trabajando en un proyecto en Node.js y quiero abrir algunos hilos adicionales para manejar la carga de procesamiento de manera más eficiente. Pero estoy usando clases con definiciones de función con ellos y cuando intento enviar esos objetos al hilo de trabajo, las funciones definidas en el objeto desaparecen y solo me quedan los otros campos en el objeto. ¿Hay alguna manera de enviar un objeto al trabajador y conservar las funciones para que puedan ser llamadas dentro del trabajador?Node.js enviando un objeto con definiciones de función al hilo de trabajo
var cluster = require('cluster');
if(cluster.isMaster){
Monster = function(species){
this.attack = function(){
console.log('CHOMP');
};
this.name = species;
};
var vamp = new Monster('vampire'),
worker = cluster.fork();
worker.send({'monster' : vamp});
}
else{
process.on('message', function(msg) {
console.log(msg.monster); //this logs "{ name: 'vampire' }"
msg.monster.attack(); //TypeError: Object #<Object> has no method 'attack'
});
}
guau que realmente limita la funcionalidad del módulo de clúster. ¿Sabes si hay planes para agregar eso a Node.js? –
Esta funcionalidad es contraria a la arquitectura node.js. El bucle de evento Node.js funciona en un solo hilo. El módulo de clúster simplemente comienza nuevos procesos. Todos ellos tienen su propia memoria independiente. La implementación de arquitecturas de subprocesos múltiples debe admitir subprocesos con memoria compartida y mecanismos relacionados, como 'mutexes' y' semáforos'. Esta no es la forma de node.js. –