Я недавно написал Интервал в NodeJS, который проверяет содержимое папки каждые X секунд. Это asyn c, поэтому он запускается рядом с остальным кодом для обновления индексов и содержимого.
ОС - это Debian 9 с узлом v10.15.2 и npm 5.8.0.
return await new Promise(resolve => {
const interval = setInterval(() => {
console.log("Checking for new files...")
fs.readdir("folder", (err,files) => {
if(files.length != cur_files.length){
console.log("New files detected!")
updateIndexes(files);
}else{
console.log("Folder is up-to-date!")
}
});
},10000);
});
}
Я заметил, что при тестировании с таймером с небольшим интервалом он медленно, но неуклонно увеличивает использование памяти на ~ 0,1 МБ каждые несколько минут. Я знаю, что это не так много с большим интервалом, но он будет увеличиваться со временем, если я запусту его без перезапуска.
Другая часть кода уже использует Stream для частого чтения / записи файлов, Должен ли я сделать что-то подобное с readdir?
Это ошибка или просто плохая практика?
Заранее спасибо!
BR Крис