У меня есть программа js узла, которую я хочу запускать каждые x секунд. Это значение будет указано пользователем и сохранено в mongoDB.Разрешить изменение setInterval time
Теперь мне нужно убедиться, что моя программа сначала считывает значение Interval из dbs, а затем запускает программу в соответствии с этим значением. Кроме того, если пользователь меняет интервал, программа должна отражать это тоже без перезапуска приложения - возможно ли это?
Чтобы сохранить его Короче говоря, это мой MongoDB значение:
{ "_id" : ObjectId("398eb"), "__v" : 0, "milliseconds" : 16000 }
Так что я хочу, чтобы моя программа сначала прочитать это значение, а затем запустить программу, основанную на значении миллисекунды.
var abc = function() {
mongoose.connect('mongodb://localhost/mas');
defaultPoll.find(function (err, interval) {
if (err) {return console.error(err);}
else {
var intervalVal = JSON.stringify(interval[0].milliseconds, null, 2);
console.log(intervalVal);
time(intervalVal);
}
})
mongoose.connection.close();
}
var time = function(sec){
setInterval(function() {
// all my other functions
console.log('hello')
}, sec, true);
}
abc();
Однако проблема с этим состоит в том, что каждые 16 секунд, «привет» выводится на консоль (ожидается), но когда я изменить значение интервала в БД Мне нужно перезапустить программу изменения, которые необходимо подобрать (что также ожидается в текущем коде).
Итак, как я могу достичь своей программы, выполняемой каждые x секунд, что указано пользователем? Может быть, setInterval - неправильный способ мышления?
Любая помощь или советы будут оценены.
Related: [Изменение интервала SetInterval в то время как он работает] (HTTP://stackoverflow.com/questions/1280263/changing-the-interval-of-setinterval-while-its-running) –