Большой цикл for - это просто блокирование всего сервера.
У вас есть два варианта: либо поместить цикл for в новый поток, либо сделать его асинхронным.
var data = [];
var next = function(i) {
// do thing with data [i];
process.nextTick(next.bind(this, i + 1));
};
process.nextTick(next.bind(this, 0));
Я не рекомендую последнее. Вы просто реализуете простое временное соединение, которое планировщик процессов на уровне ОС может сделать лучше, чем вы.
var exec = require("child_process").exec
var s = exec("node " + filename, function (err, stdout, stderr) {
stdout.on("data", function() {
// handle data
});
});
В качестве альтернативы используйте что-то вроде hook.io
для управления процессами.
На самом деле, вы, вероятно, хотите активно перепроектировать свою кодовую базу, если у вас есть блокировка для цикла.