我有路线
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/