我建立是從一個特定站點刮數據的天氣應用程序,但是在當天的數據變成了,因爲我要湊數據的方式不準確的一定的時間。如果我可以每天在特定時間收集數據,這不會是一個問題。讓我的mongoDB在每天的特定時間收集數據?
是否有我的流星服務器每天早上出門,並收集新的數據,在1和存儲,我可以全天使用蒙戈數據庫中的信息的方法嗎?
我建立是從一個特定站點刮數據的天氣應用程序,但是在當天的數據變成了,因爲我要湊數據的方式不準確的一定的時間。如果我可以每天在特定時間收集數據,這不會是一個問題。讓我的mongoDB在每天的特定時間收集數據?
是否有我的流星服務器每天早上出門,並收集新的數據,在1和存儲,我可以全天使用蒙戈數據庫中的信息的方法嗎?
退房滲出液:同步-cron包。
https://atmospherejs.com/percolate/synced-cron
使用,你可以這樣做:
SyncedCron.add({
name: 'Scrape weather data',
schedule: function(parser) {
// parser is a later.parse object
return parser.text('at 1:00 am');
},
job: function() {
//
// scraping code
//
WeatherData.insert(scrapedData); //insert to MongoDB Collection
}
});
SyncedCron.start();
也有一個純JavaScript的基礎上setTimeout
功能的解決方案:
function updateWeather() {
// Update weather logic
}
/**
* @returns {Number} ms till next day's 1 am
*/
function computeMsToNextWeatherUpdate() {
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
tomorrow.setHours(13); // 1 am
tomorrow.setMinutes(0);
tomorrow.setSeconds(0);
return tomorrow.getTime() - Date.now();
}
function startWeatherUpdater() {
updateWeather();
setTimeout(startWeatherUpdater, computeMsToNextWeatherUpdate());
}
startWeatherUpdater();
這看起來真棒,確實解析器實際上在'凌晨1:00'接受一些非正式的東西?謝謝您的幫助! –
是的,它使用later.js庫進行調度,這對於您如何指定重複來說非常靈活。看看這裏的完整文檔http://bunkat.github.io/later/ – bluebird
完美!現在就開始工作吧,非常感謝! –