之前我从未使用过node.js.但是从here开始执行solr安全代理的步骤。一切都很好,但它给了我这个警告。我知道我必须设置最大听众,但不知道我是怎么做的。请帮助我。
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at addListener (events.js:160:15)
at /home/abc/node_modules/solr-security-proxy/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js:63:27
at Array.forEach (native)
at null.<anonymous> (/home/abc/node_modules/solr-security-proxy/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js:62:33)
at emit (events.js:98:17)
at addListener (events.js:138:10)
at Array.0 (/home/abc/node_modules/solr-security-proxy/solr-security-proxy.js:69:13)
at Server.handler (/home/abc/node_modules/solr-security-proxy/node_modules/http-proxy/lib/node-http-proxy.js:175:40)
at Server.emit (events.js:98:17)
at HTTPParser.parser.onIncoming (http.js:2164:12)
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at addListener (events.js:160:15)
at Array.0 (/home/abc/node_modules/solr-security-proxy/solr-security-proxy.js:69:13)
at Server.handler (/home/abc/node_modules/solr-security-proxy/node_modules/http-proxy/lib/node-http-proxy.js:175:40)
at Server.emit (events.js:98:17)
at HTTPParser.parser.onIncoming (http.js:2164:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:152:23)
at Socket.socket.ondata (http.js:2022:22)
at TCP.onread (net.js:528:27)
答案 0 :(得分:0)
您在呼叫setMaxListeners
(或addListener
)的同一对象上拨打on
,这将是EventEmitter
。
然而,如果你确实有一个发射器内存泄漏(而不仅仅是发生需要11个听众而不是更多),那么你需要从源头解决这个问题 - 提高限制不会对你有所帮助。
请参阅:How to debug “EventEmitter memory leak detected. 11 listeners added”
答案 1 :(得分:0)
我遇到了这个问题,因为我试图运行10个以上的异步任务,所以我确实确实需要10个以上的事件侦听器。但是实际的事件侦听器代码在我正在使用的库/模块中,所以我无法使用setMaxListeners()
,因为我无权访问该对象。最后,在程序开始时一次覆盖全局值对我有用:
require('events').EventEmitter.defaultMaxListeners = 15;