javascript - Nodejs Express 中的异步操作

标签 javascript node.js process

我有路线

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 编写为异步并确保它不会阻止事件循环。

关于javascript - Nodejs Express 中的异步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446348/

相关文章:

jquery - 在 nodejs 中使用 jquery 时的基本错误

javascript - Firebase 在我的 Node.js 应用程序中的行为不正常

javascript - Node.js:process.argv 与 process.ARGV

c++ - 计算C++中相同运行进程的总数

javascript - 获取在正则表达式中匹配的组的索引?

javascript - 保护浏览器php中的图像

javascript - 如何自上而下滑动 JQuery 移动版

node.js - 在没有node.js的情况下在外部使用gooddata-js SDK

java - runtime.exec 立即发送 EOF 到输入?

javascript - 在 HTML 中自定义单选按钮并删除可检查的圆圈