我在 Node.js 中收到以下错误,我认为它与 AMQP 有关。
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Connection.EventEmitter.addListener (events.js:160:15)
at Connection.EventEmitter.once (events.js:179:8)
at Connection.connect (/var/www/project/app/node_modules/amqp/amqp.js:1084:8)
at Connection.reconnect (/var/www/project/app/node_modules/amqp/amqp.js:1049:8)
at null._onTimeout (/var/www/project/app/node_modules/amqp/amqp.js:886:16)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
谁能指出问题可能是什么?
这是我用来连接的模块中的代码:
JackRabbit.prototype.subscribe = function subscribe(recievedCB, routingKey) {
var self = this;
var route = routingKey || '#';
self.createConnection(function(rabbitMq, ex, q) {
// Catch all messages
q.bind(self.config.exchangeName, route);
// Receive messages
q.subscribe(self.config.messageOptions, function(msg, headers, deliveryInfo) {
recievedCB(q, msg, headers, deliveryInfo);
// Clsoe connection
//rabbitMq.end();
});
});
}
这里是我调用该方法的地方:
var scrapRequestRecieved = function(q, msg, headers, deliveryInfo) {
console.log("SC msg: %j", msg);
/** Callback function shifts the completed job from the queue. */
phantom.scrapeUrls(msg.urls, function() {
console.log("SC DONE");
q.shift();
});
};
rabbit.subscribe(scrapRequestRecieved, "sc.#");