我在走路线

app.get('/posts', function (req, res) {
  res.json([
    // data
  ]);

  // what would happen to the code below
  // Suppose it is processing a million records
  processMillionRecords();
});

function processMillionRecords () {
  // process million records
}


发送响应后,将调用另一个函数,这是一个非常昂贵的操作。如果这种情况继续下去会怎样?有什么影响吗?

我知道理想的方法是使用后台进程。因此,我将其替换为以下内容。

res.json([
  // data
]);

var child = require('child_process');
child.fork('worker.js');

// worker.js
function processMillionRecords () {
  // process million records
}


哪一种更适合?在哪种情况下?

最佳答案

构建Node是为了处理长时间的异步操作。除非它占用大量CPU,否则您可能无需派生新的辅助进程。只需将您的processMillionRecords编写为异步并确保它不会阻塞事件循环。

09-12 10:16