2016-08-03 39 views
0

我正在尝试为用户获取Project权限并尝试稍后设置权限。项目和用户映射有89866个对象。在完成不超过300次后出错。是否有限制多少查询,你可以在一定的时间内在Node RestApi中执行

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

对您发送的请求数量或承诺没有限制。然而,这种情况发生在两种不同的情况:

可能的情况下,1

减少和承诺是对内存沉重。所以节点可能会耗尽内存,但我怀疑是这种情况。

可能壳体2

如果服务器过载它简单地杀死连接作为结果。因此你得到ECONNRESET。

没有服务器可以在少于几秒钟内处理89866个请求,您需要每隔几小时才能有一个延迟或批量发送它们。

相关问题