我正在尝试获取用户的Project权限,并尝试稍后设置权限。项目和用户地图有89866个对象。它完成后误差不超过300。
Error:
{
"code": "ECONNRESET",
"errno": "ECONNRESET",
"syscall": "read"
}
return _.reduce(projectHash, function(promise, teamPermission, projectOID){
return promise.then(function(){
return rallyUtil.getProjectPermission('/user/' + userOID, '/project/' + projectOID).then(function(permission){
if(!permission || (permission.Role != teamPermission && permission.Role != 'Admin')){
//need to get user or else WSAPI server will throw a concurrency error
return rallyUtil.getUser('/user/' + userOID).then(function(){
return rallyUtil.setProjectPermission('/user/' + userOID, '/project/' + projectOID, teamPermission);
});
}
});
});
}, Promise.resolve());
答案 0 :(得分:1)
您发送的请求数量或承诺数量没有限制。但是这种情况发生在两种不同的情况下:
减少和承诺对内存很重要。所以节点可能会耗尽内存,但我怀疑是这种情况。
如果服务器过载,它会直接杀死连接。因此你得到了ECONNRESET。
没有服务器可以在不到几秒的时间内处理89866个请求,您需要每隔几个延迟一次或分批发送。
答案 1 :(得分:0)
服务方面通常没有限制。看起来您可能在节点应用程序中提出的请求多于严格必要的请求。我们看到了一些奇怪的行为,将大量的承诺捆绑在一起。是否可以减少应用程序的总体请求数量?