Я хочу создать монитор работоспособности, используя NodeJS и MongoDB. Я хочу запустить задание cron в NodeJS и сохранить данные в MongoDB. Если код статуса ответа сайта не равен 200
, он будет сохранен в базе данных. Я хочу сделать запись в базе данных, как это,
url : http://www.google.com
status_code : 500
start_time :- start time
end_time :- end time
Я могу запустить задание cron, но не уверен, как сохранить время простоя в базе данных. Как, я не хочу хранить каждый ответ в базе данных. Только когда код состояния ответа отличен от 200
, он начинает отслеживать (start_time
) URL-адрес и сохраняет время возврата веб-сайта на 200
как end_time
.
.
cron.js
: -
var async=require('async');
const Entry = require('../models/health.model.js');
var https = require('https');
var request = require('request');
module.exports = function getHttpsRequests () {
Entry.find({},function(err,entrys){
console.log(err);
if(!err && entrys){
async.each(entrys,function(entry,callback){
request(entry.url, function (error, response, body) {
entry.statuscheck=response.statusCode;
entry.save();
callback();
});
},function (error) {
});
}
});
}
health.model.js
: -
const mongoose = require('mongoose');
const EntrySchema = mongoose.Schema({
url: String,
statuscheck: String
}, {
timestamps: true
});
module.exports = mongoose.model('Entry', EntrySchema);