【发布时间】:2017-08-21 09:49:35
【问题描述】:
我在 node.js 中遇到了一些与 express 相关的阻塞问题。 目前,我现在有这个代码:
router.get('/Hello', function(req, res, next) {
(async ()=>{
try{
await api.connect();
let result=await api.HandleSomethins();
await api.disconnect();
}catch(err){
console.log(err);
}
})();
return res.status(json(result));
});
上面的代码没有问题,我只是使用async/await来同步一些重载过程。
然后我得到以下情况:
- 1.UserA用这个url连接我的node.js,UserA正在等待 立即回复。
- 2.此时UserB也连接了,所以node.js无法立即处理UserB的请求。
- (注)。我需要向用户客户端(iOS/Android)发送响应。
也许节点服务器会同时获得 UserC、D 等。我该怎么办才能处理这种情况? child_proess?簇?还是别的什么?
【问题讨论】:
-
这取决于
api.HandleSomethins()的作用。是否占用大量 CPU?另外,真的有必要为每个请求连接/断开“api”吗? -
离题。我几乎可以肯定上面的代码有问题。它应该在未定义
result时引发引用错误。 -
请出示
api.connect()和api.HandleSomethins()代码。 -
我不确定它是否占用大量 CPU,但它需要时间来做一些事情
-
我简化了细节代码,这里只使用HandleSomething()来表示复杂的api。其实api并没有反馈给我,只是根据api的response(result可能是自定义flag)
标签: javascript node.js http express