Nodejs è progettato per essere eseguito su un singolo processo, ma è possibile eseguire spawn altri processi. Il modulo cluster utilizza il metodo fork dal modulo child_process, ma è concepito per distribuire le connessioni di un server tra processi e condividere la stessa porta.
Penso che tu voglia exec. Esempio:
var exec = require('child_process').exec,
child;
var array = ["a", "b", "c", "d", "e"]; // your array of data
var n = array.length; // length
var done = 0; // jobs done
var i = n; // iterator
while(i--) { // reverse while loops are faster
(function (argument) { // A closure
child = exec('node otherFunction.js '+argument, // Spawn the process, with an item from your array as an argument.
function (error, stdout, stderr) {
if (error === null) {
done += 1;
if (done === n) {
console.log('Everything is done');
}
}
});
})(array[i]);
}
Quanto sopra è ovviamente codice errato e nemmeno testato, ma penso che funzionerebbe. Tutto quello che devi fare è chiamare la funzione che desideri chiamare sugli elementi dell'array in otherFunction.js
, all'interno del quale troverai gli argomenti in process.argv
.
fonte
2012-08-19 10:36:00
Penso che sia necessario: [cluster] (http://nodejs.org/api/cluster.html) –
programmazione guidata dagli eventi è abbastanza insolito per me ora .. Ho bisogno di aiuto con esempi di utilizzo con il mio compito .. – elgato
Poiché Node.js non ha thread, è necessario pensare di più in termini di concetti di programmazione UNIX tradizionali (ad es. Forking, spawning e IPC-Inter Process Communication). C'è un modulo NPM chiamato hook.io che rende l'IPC carino e simile a Node, piuttosto che definire il proprio formato di payload, ecc., Come in genere dovrebbe essere il caso: https://github.com/hookio/hook.io – d11wtq