【问题标题】:EventEmitter memory leak. require('request')EventEmitter 内存泄漏。要求('请求')
【发布时间】:2013-08-05 04:54:56
【问题描述】:

在使用 mikael 的请求模块时,我正在运行以下命令:

if(product.Links.Direct_Link)
{
    var string = product.Links.Direct_Link;
    console.log(string)
    request({'uri': string, 'jar': true, 'followRedirects': false, 'maxSockets': 15, 'headers': { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0"}}, getSizes);
} else {
    callback(null, product);
}

这是这个的输出:

(node) warning: possible EventEmitter memory leak detected. 11 listeners added.
Use emitter.setMaxListeners() to increase limit.
http://www.spartoo.dk/Palladium_BARROW_KID-x30475.php?sx=G
Trace
    at Socket.EventEmitter.addListener (events.js:160:15)
    at Socket.Readable.on (_stream_readable.js:679:33)
    at Socket.EventEmitter.once (events.js:179:8)
    at Request.onResponse (C:\Vuuh\trunk\feedserver\node_modules\request\index.j
s:645:25)
    at ClientRequest.g (events.js:175:14)
    at ClientRequest.EventEmitter.emit (events.js:95:17)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1669:21)
    at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:120:23
)
    at Socket.socketOnData [as ondata] (http.js:1564:20)
    at TCP.onread (net.js:525:27)

我为此请求提供了很多 http,因为我希望它解析数千个网页。

有趣的是,我在另一个网站上运行它并没有遇到这个问题(但该网站的页面数量只有 1/10)?

有人知道为什么我会收到事件发射器警告吗?它会使脚本随着时间的推移耗尽内存!

【问题讨论】:

    标签: node.js memory memory-leaks request eventemitter


    【解决方案1】:

    这是节点#5108 的错误。升级到node最新版本(>0.10.11)应该可以解决问题了。

    【讨论】:

    • 我在v0.10.22 上,我明白了。
    • 我也在 v0.10.22 上得到它,你解决了吗@ThomasReggi?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 2012-04-24
    • 1970-01-01
    • 2014-06-20
    • 2019-05-16
    相关资源
    最近更新 更多