Я намагаюся реалізувати рішення проблеми у вузлі js, тобто:
Наприклад:
Повинен повертатися
"Сума чисел від 1 до 5: 15"
Якщо
Відповідь має бути:
"Сума чисел від 1 до 100: 4950"
Параметр може бути величезним:
наприклад:
URL: http://localhost/sum/100000000 (десять мільйонів)
У жодному разі сервер повинен застряг обробляти тільки один запит.
Я читав де-небудь setImmediate може допомогти.
Відповіді:
1 для відповіді № 1Сума 1 + 2 + 3 + ... + n може бути представлена n (n + 1) / 2. Див це посилання для отримання додаткової інформації.
1 для відповіді № 2
Загалом, коли ви хочете не блокувати виконання, ви можете використовувати модуль child_process: https://nodejs.org/api/child_process.html
Приклад виглядатиме приблизно так:
//fork a new process
var cp = require("child_process");
var child = cp.fork("./intensiveTask.js",[],{});
//listen for messages from the child process
child.on("message", function(ret) {
console.log("child process has finished", ret.data);
//kill the child process
child.kill();
});
//send a message to the child process
child.send({msg: "Foo"});
Ось код дочірнього процесу (intensityTask.js)
process.on("message", function(data) {
//do the intensive work here
var output=data.msg + " Bar";
//send the output back to the parent
process.send({msg: output});
});