我不断收到此错误: 错误(节点:7932)MaxListenersExceededWarning:检测到可能的EventEmitter内存泄漏。添加了11个错误侦听器。使用generator.setMaxListeners()增加限制
RabbitMQ连接关闭,然后重试连接。这是初始化兔子MQ连接的代码:
try {
connection = await amqp.connect(process.env.RABBITQM_CONNECTION_STRING);
} catch (err) {
logger.error('[AMQP] error connecting %s', err);
setTimeout(() => { this.init(next); }, 1000);
}
if (connection) {
connection.on('error', (err) => {
if (err.message !== 'Connection closing') {
logger.error('[AMQP] connection error %s', err);
}
});
connection.on('close', () => {
logger.error('[AMQP] re-connecting');
return setTimeout(() => { this.init(next); }, 1000);
});
logger.info('[AMQP] connected');
if (_.isFunction(next)) {
await next();
}
}
我在想,也许会不断添加connection.on('error'),connection.on('close')处理函数,而无需删除它们。那么有没有办法删除它们?然后,我尝试了(eventName),但似乎没有用。还是我做错了什么?