我有一個節點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) –