【发布时间】:2017-07-31 19:44:12
【问题描述】:
假设我有两台服务器。第一个服务器向第二个服务器发出 post 请求。请求对象的主体包含重要的原始数据。我们将这些数据作为输入到第二个服务器并对其进行处理以生成新数据,这些新数据会上传到 AWS S3 等系统。之后,我们通过在第一台服务器上发出请求,将此下载链接发送到第一台服务器。
现在,这种数据处理需要一些时间(几分钟),我们不想让第一台服务器等待这段时间。所以我想立即向我收到请求的第一台服务器发送响应,并且它的输出很快就会发送给它。现在我想知道解决这个问题的最佳方法是什么。
这是一些代码
第二台服务器
app.post('/data', function(req, res) {
res.send('Processing started. Will send data soon');
doProcessing(req.body, function(processedData) { // this function takes time to complete
console.log('Work Completed');
request.send(url, processedData); // send the processed data back to the first server
});
});
现在,由于 nodejs 的异步特性,此代码无法正常工作。 doProcessing 函数未完全执行。它在两者之间中断。我们可以在这里使用哪些方法。请帮忙。谢谢
【问题讨论】:
标签: node.js api asynchronous