lkmrus
@lkmrus
IT-engineer

Как предотвратить утечку памяти в событиях node.js?

Получаю новые сообщения от одного сервиса, только эти новые сообщения мне нужно фильтровать.
Фильтр приходит от другого сервера и должен существовать определенное время.
Отсюда 2 проблемы:
1. Утечка памяти при получении новых сообщений.
eventEmitter.on('NEW_MESSAGE', (msg) => {
  // При каждом новом сообщении будет создавать новую прослушку
  ws.on('FILTER', async (filter) => {
    // отправляем ответ на сервер
    await sendMsg(msg, filter)
  })
})

2. Эти фильтры нужно резолвить, чтобы опять же не забивать память не нужными объектами.
Я делаю так. При текущей реализации это работает.
const sendMsg = async (msg, filter) => {
  try {
    // Отправляем если фильтр соответствует
    if (msg.id === filter.id) {
      ws.emit('FILTER', msg)
    }
    if(msg.status === filter.status || msg.status === 'completed') {
      resolve(msg)
    }
  } catch (error) {
    rejects()
  }
}
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы