同步网关连接错误:连接EMFILE - 本地(未定义:未定义)

时间:2017-11-03 17:38:18

标签: node.js couchbase couchbase-sync-gateway

我正在尝试通过节点服务器中的sync gatetway API GET / {db} / {doc}获取couchbase文档修订标识符:

function _getRev(docIdUrl, gateway, callback) {

    let options = {
        host: gateway.host,
        path: gateway.path + docIdUrl,
        port: gateway.port,
        method: 'GET',
        headers: {
            'Content-Type': 'application/json'
        }
    };

    // Node HTTP requests
    let syncGatewayRequest = http.request(options, (response) => {
           // ...unrelevant codes
    });

    syncGatewayRequest.on('error', (error) => {
        logger.error('syncGateway connection error for ' + docIdUrl);
        callback(error, null); // here is the error happening!!!!!
    });

    syncGatewayRequest.write(JSON.stringify({}));
    syncGatewayRequest.end();
}

然后我收到了错误:

[2017-11-03 11:07:51.961] { [Error: connect EMFILE 10.0.1.53:4985 - Local (undefined:undefined)]
  code: 'EMFILE',
  errno: 'EMFILE',
  syscall: 'connect',
  address: '10.0.1.53',
  port: 4985 }
Error: connect EMFILE 10.0.1.53:4985 - Local (undefined:undefined)
    at Object.exports._errnoException (util.js:870:11)
    at exports._exceptionWithHostPort (util.js:893:20)
    at connect (net.js:849:16)
    at net.js:937:9
    at nextTickCallbackWith0Args (node.js:420:9)
    at process._tickCallback (node.js:349:13)

有一个上下文,上述函数由大量服务异步执行,比如10,000 +

我注意到这里的帖子Nodejs connect EMFILE - How to reuse connections?

但我尝试通过执行以下操作来限制默认连接:

var http = require('http')
http.globalAgent.maxSockets = Infinity

但似乎没有用,错误仍然......

任何人都可以让我知道这里有什么问题?

0 个答案:

没有答案