#node.js #timeout #settimeout #infinite-loop
#node.js #тайм-аут #settimeout #бесконечный цикл
Вопрос:
Итак, я хочу создать программу, которая получала бы данные из веб-api каждые 15 минут и обрабатывала их. Этот процесс будет бесконечным (до тех пор, пока программа не будет закрыта). Я экспериментировал с тайм-аутами, но на моем компьютере быстро заканчивается память (24 ГБ ОЗУ), поэтому мой код, очевидно, очень плохой способ сделать это.Часть кода, связанная с обработкой и сбором данных, выполнена и работает нормально, что не работает, так это часть бесконечного цикла. Мой взгляд на эту проблему был, по сути, таков:
for (i = 0;; i) {
setDelay(i);
}
function setDelay(i) {
setTimeout(function(){
//More code goes in here.
console.log(i);
}, 1000);
}
Конечно, должен быть лучший способ бесконечно выполнять фрагмент кода каждые X минут, не заполняя оперативную память вашего ПК. Есть идеи?
Ответ №1:
Возможно, вы захотите использовать setInterval
, который делает именно то, что вам нужно. Фрагмент
setInterval(function () {
console.log('Some message...');
}, 100);
будет запускать console.log
оператор каждые 100 миллисекунд, не вмешиваясь в стек и не тратя системные ресурсы.