我有一个节点js程序,我想运行每x秒钟。该值将由用户指定,并保存在mongoDB中。允许修改setInterval时间
现在我需要确保我的程序首先从dbs中读取Interval值,然后根据此值运行程序。此外,如果用户更改了时间间隔,程序也需要反映这一点,而无需重新启动应用程序 - 这可能吗?
为了简化,这是我的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不是正确的思维方式?
任何帮助或提示,将不胜感激。
相关:改变的setInterval的时间间隔,而它的运行(HTTP:/ /stackoverflow.com/questions/1280263/changing-the-interval-of-setinterval-while-its-running) –