Я пытаюсь запустить фоновый процесс с Forever, который каждый час добавляет данные из внешней службы в мою базу данных mongodb (я новичок в узле и понятия не имел, как это сделать). Я использую Node с Express и запускаю задачу навсегда, используя
forever -o out.log -e err.log start background/collector.js
так что у меня есть некоторые отзывы о процессе. Код следующий:
var request = require('request');
var mongoose = require('mongoose');
var Model = require('../models/Model.js');
// Starting the collector process
addNewData();
function addNewData() {
request('external_service_url', function (error, response, body) {
if (!error && response.statusCode == 200) {
var models = JSON.parse(body);
console.log('Adding the new models...')
for(var i = 0; i < models.length; i++)
{
console.log(i);
Model.create(models[i], function (error, post, result) {
console.log('Test');
if (error) console.log('Something went wrong adding the document!');
if ( ! result.updatedExisting)
{
console.log('A new document has been added!');
}
});
}
console.log('Models added: ' + models.length);
// Every hour we will collect new data
console.log('Waiting for an hour...');
setTimeout(addNewData, 36000000);
}
})
}
Я не знаю почему, но кажется, что обратный вызов .create()
не работает, console.logs, помещенные внутри обратного вызова create, ничего не показывают в журналах. Навсегда не работает с мангустом? У вас есть идея?