@Toster_KSL

Как сделать, чтобы Node.js не отключался из-за нехватки памяти?

Из-за нехватки памяти отключается нужный мне процесс

В логе
[2016-08-28 11:12:16] [ERROR] (node) warning: possible EventEmitter memory leak detected. 11 off listeners added. Use emitter.setMaxListeners() to increase limit.
[2016-08-28 11:12:16] [ERROR] Trace
    at addListener (events.js:239:17)
    at Scales.powerOn (/srv/scales/lib/process.js:399:10)
    at Async.series.startup (/srv/scales/lib/process.js:213:18)
    at /srv/scales/node_modules/async/lib/async.js:718:13
    at iterate (/srv/scales/node_modules/async/lib/async.js:262:13)
    at /srv/scales/node_modules/async/lib/async.js:274:29
    at /srv/scales/node_modules/async/lib/async.js:44:16
    at /srv/scales/node_modules/async/lib/async.js:723:17
    at /srv/scales/node_modules/async/lib/async.js:167:37
    at /srv/scales/lib/plugins/minecraft/main.js:111:28


Как этого избежать в будущем?
  • Вопрос задан
  • 2581 просмотр
Пригласить эксперта
Ответы на вопрос 3
https://github.com/foreverjs/forever + поискать баг в коде + нода прямо подсказывает вариант с "Use emitter.setMaxListeners() to increase limit."
Ответ написан
@id194695811
Попробуйте так

require('events').EventEmitter.defaultMaxListeners = Infinity;


Источник stackoverflow.com/a/38947078/5526354
Ответ написан
@yeti357
В первую очередь удостоверится, что слушатели не плодятся в цикле или при регулярном создании какого-либо объекта/запроса. При удаление объекта/запроса, который вешал слушателя, не забыть удалить добавленный колбэк из ивент эммиттера с помощью removelistener
установите только для используемого экземпляра ивент эмиттера повышенное ограничение на слушателей.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы