Nodejs 如何在阻塞进程的情况下处理多个并行请求
Nodejs how to handle multiple parallel requests incase of blocking process
我正在做一个小项目,其中用户向我的服务器发出http请求,然后我从三个不同的服务器获取并处理一些数据,然后将汇总结果返回给客户端。
当两个以上的客户端同时发出请求时,一切正常,所有客户端都无法获得响应并面临超时错误。
如何处理这件事.
提前致谢
好的,我明白了。我建议对这类东西使用 es6 承诺。您可以使用 request-promise 和 bluebird 向其他服务器发出 http 请求。
然后只是:
var rp = require('request-promise');
var bluebird = require('bluebird');
bluebird
.all(rp('http://www.google.com'), rp('http://example.com'))
.then(function (googleResponse, exampleResponse) {
// Some computation
return someResult;
})
.then(function (previousResult) {
// Some more computation
return someResult;
});
基本上你想要的是做计算的一部分,然后返回并允许节点接管,然后在下一步做计算的其他部分,依此类推。如果将进程拆分为几个小块,则应该能够减少阻塞。
除此之外,您还可以签出节点群集,这是一个非常简单的过程,允许您处理少数工作线程之间的服务器负载:https://www.sitepoint.com/how-to-create-a-node-js-cluster-for-speeding-up-your-apps/
相关文章:
- jQuery:如何在没有for循环的情况下将事件处理程序应用于$('#text'+'任意整数
- 如何在不使用处理程序的情况下使用ajax将文件从客户端发送到服务器端
- 在这种情况下使用onclick事件处理程序可以接受吗
- 如何在不分隔跨度字母的情况下对文本进行动画处理
- 谷歌应用程序脚本:如何在没有用户交互的情况下调用绑定到处理程序的函数
- 如何在不发生冲突的情况下处理多个json请求
- 使用xhr.onprogress可以在不耗尽内存的情况下处理大型ajax下载
- JQuery button.click() 处理程序在不单击的情况下触发
- 在没有jQuery的情况下处理丢失的图像
- 有没有办法在不访问后端的情况下处理 CORS
- Wordpress admin-ajax.php 在没有处理功能的情况下正在消亡“0”
- 在这种情况下如何处理数据驱动的输入
- 如何在不上传的情况下在本地处理图像(来自手机)
- AngularJS - 处理错误错误:[ng:areq] 在此特殊情况下 (?)
- 如何在没有jQuery的情况下处理Ajax浏览器兼容性
- 我们如何在错误的资源请求的情况下使用 XMLHttpRequest 函数处理程序
- Twitter 引导弹出窗口 :如何在不使用正文/文档事件处理程序的情况下在外面单击时隐藏它
- 如何在没有引导的情况下正确处理 AngularJS 应用程序中的弹出窗口(模态)
- Grails如何在没有资源插件的情况下处理静态文件
- 如何在不创建无限循环的情况下从事件处理程序中激发事件触发函数