Доброе утро всем.
В моем коде реконекта до rabbitMQ есть утечка пам'яти:
1. Если сервер недоступен делаю реконект путем вызова той самой функции(рекурсия) что не есть хорошо
2. Хотелось бы что-бы удалился старий контекст коллбека но чот пока не могу понять даже как в памяти это работает
amqp.connect(amqp://${rabbitMQUrl}
, ( err: any, conn: Connection) => {
if (err) {
this._logger.error("[AMQP]", err);
return setTimeout(this.createConnection.bind(this), 1000);
}
conn.on("error", err => {
this._logger.error("[AMQP]", err);
if (err.message !== "Connection closing") {
this._logger.error(err);
}
});
conn.on("close", () => {
this._logger.debug("[AMQP] reconnecting");
return setTimeout(this.createConnection.bind(this), 1000);
});
this._logger.debug("[AMQP] connected");
});
Заранее всем спасибо